From 382f7ebc87fc0d1056e257b83963d1903f7e8d27 Mon Sep 17 00:00:00 2001 From: Michi Henning Date: Mon, 28 Oct 2002 06:25:27 +0000 Subject: First shot at porting to VC++ 2002. Code compiles, but suffers random crashes during the tests. --- cpp/src/Ice/DynamicLibrary.cpp | 8 ++++++-- cpp/src/Ice/Network.cpp | 4 ++-- cpp/src/IceSSL/OpenSSLPluginI.cpp | 3 ++- cpp/src/IceUtil/ThreadException.cpp | 2 +- cpp/src/IceUtil/UUID.cpp | 7 ++++++- 5 files changed, 17 insertions(+), 7 deletions(-) (limited to 'cpp/src') diff --git a/cpp/src/Ice/DynamicLibrary.cpp b/cpp/src/Ice/DynamicLibrary.cpp index 6d7ca2aeaf5..19a4ba3c930 100644 --- a/cpp/src/Ice/DynamicLibrary.cpp +++ b/cpp/src/Ice/DynamicLibrary.cpp @@ -96,8 +96,12 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint) bool IceInternal::DynamicLibrary::load(const string& lib) { -#ifdef _WIN32 - _hnd = LoadLibrary(lib.c_str()); +#ifdef _WIN32 +#if _MSC_VER == 1200 + _hnd = LoadLibrary(lib.c_str()); +#else + _hnd = LoadLibrary((LPCWSTR)lib.c_str()); // Type changed in VC++ 2002 +#endif #else _hnd = dlopen(lib.c_str(), RTLD_NOW); if(_hnd == 0) diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp index 438c22dc958..7467b164511 100644 --- a/cpp/src/Ice/Network.cpp +++ b/cpp/src/Ice/Network.cpp @@ -743,8 +743,8 @@ IceInternal::errorToString(int error) if(ok) { LPCTSTR msg = (LPCTSTR)lpMsgBuf; - assert(msg && strlen(msg) > 0); - string result = msg; + assert(msg && strlen((const char*)msg) > 0); + string result = (const char*)msg; LocalFree(lpMsgBuf); return result; } diff --git a/cpp/src/IceSSL/OpenSSLPluginI.cpp b/cpp/src/IceSSL/OpenSSLPluginI.cpp index 1da7bdaa24e..09a957d605a 100644 --- a/cpp/src/IceSSL/OpenSSLPluginI.cpp +++ b/cpp/src/IceSSL/OpenSSLPluginI.cpp @@ -68,7 +68,8 @@ create(const CommunicatorPtr& communicator, const string& name, const StringSeq& catch (...) { Ice::PluginPtr ptr = plugin; // Reclaim the plug-in instance - throw; + // TODO: can't throw from an extern "C" function + // throw; } // diff --git a/cpp/src/IceUtil/ThreadException.cpp b/cpp/src/IceUtil/ThreadException.cpp index d4cee046c2b..7f7a0074acf 100644 --- a/cpp/src/IceUtil/ThreadException.cpp +++ b/cpp/src/IceUtil/ThreadException.cpp @@ -50,7 +50,7 @@ IceUtil::ThreadSyscallException::ice_print(ostream& os) const if(ok) { LPCTSTR msg = (LPCTSTR)lpMsgBuf; - assert(msg && strlen(msg) > 0); + assert(msg && strlen((char*)msg) > 0); os << msg; LocalFree(lpMsgBuf); } diff --git a/cpp/src/IceUtil/UUID.cpp b/cpp/src/IceUtil/UUID.cpp index 9ec636057d9..7b2ea932377 100644 --- a/cpp/src/IceUtil/UUID.cpp +++ b/cpp/src/IceUtil/UUID.cpp @@ -28,8 +28,13 @@ IceUtil::generateUUID() UUID uuid; UuidCreate(&uuid); + +#if _MSC_VER == 1200 + unsigned char* str; +#else + unsigned short* str; // Type has changed for some reason in VC++ 2002 (but doc still +#endif // says it's unsigned char *...) - unsigned char* str; UuidToString(&uuid, &str); string result(reinterpret_cast(str)); -- cgit v1.2.3