This forum has been archived. Please start a new discussion on GitHub.

ice without STLPORT?


I'm in a bit of a dilemma here. I _need_ ICE to work on MSVC++ 6.0, without STLPORT. :)

We have our own internal modifications to get by the broken STL implementation on VC++6 and that is clashing with STLPORT.

How much work would it be to go through the ICE code and pull out all references to STLPORT and place ours in.

I apologize if this is a dumb question. Just looking to see if you guys think its even logical to do



  • mes
    mes California

    I believe the only change you'd need to make would be to disable the following code in include/IceUtil/Config.h:
    // If we use Visual C++ 6.0, we must use STLport
    #if defined(_MSC_VER) && (_MSC_VER < 1300) && !defined(_STLP_BEGIN_NAMESPACE)
    #   error "Ice for Visual C++ 6.0 requires STLport"
    Give it a try and see what happens.

    Good luck,
    - Mark
  • and this is what i get ..

    C:/Ice-3.0.0-VC60/include\IceUtil/Mutex.h(141) : error C2065: 'TryEnterCriticalSection' : undeclared identifier

    tracing back, shouldn't this be picked up automatically by WINDOWS.h and WINBASE.h..

    am i doing somethign wrong?

  • mes
    mes California
    Which operating system are you using?

    - Mark
  • sigh

    Using NT, well, I gave this to the compiler as an option

    CPPFLAGS += /D_WIN32_WINNT=0x0400

    and that solves the compile error, but i guess our implementation of some of the STL leaves a lot to be resolved, I get a lot of linking errors..

    Templates.obj : error LNK2001: unresolved external symbol "public: void __thiscall IceProxy::Demo::Printer::printStringArray(class s
    td::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::b

    TestICE.obj : error LNK2001: unresolved external symbol "public: void __thiscall IceProxy::Demo::Printer::printStringArray(class std
    ::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::bas
    ic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > const &)" (?printStringArray@Printer@Demo@IceProxy@@QA

    yeah, so can't really handle basic_string :)

    arggh. works wonderfully on Linux, and sadly can't use it on MSVC++ 6.0, which is needed by us..

    thanks a ton for the help!