diff options
author | Michi Henning <michi@zeroc.com> | 2008-04-03 12:36:57 +1000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2008-04-03 12:36:57 +1000 |
commit | 27a24cf07fa7646c5a27cbbfb60d6e4a86184ebc (patch) | |
tree | 4d825c1cb800b154ea4b33b238027f1ff9a13531 /cpp/src/Ice/DLLMain.cpp | |
parent | Fixed comment for GCShared (wrong namespace). (diff) | |
parent | Merge branch 'master' of cvs:/home/git/ice (diff) | |
download | ice-27a24cf07fa7646c5a27cbbfb60d6e4a86184ebc.tar.bz2 ice-27a24cf07fa7646c5a27cbbfb60d6e4a86184ebc.tar.xz ice-27a24cf07fa7646c5a27cbbfb60d6e4a86184ebc.zip |
Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice
Diffstat (limited to 'cpp/src/Ice/DLLMain.cpp')
-rw-r--r-- | cpp/src/Ice/DLLMain.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/cpp/src/Ice/DLLMain.cpp b/cpp/src/Ice/DLLMain.cpp index 125e5f799dd..7c07fef0b9a 100644 --- a/cpp/src/Ice/DLLMain.cpp +++ b/cpp/src/Ice/DLLMain.cpp @@ -23,11 +23,18 @@ DllMain(HINSTANCE hDLL, DWORD reason, LPVOID reserved) #else ice_DLL_Main(HINSTANCE hDLL, DWORD reason, LPVOID reserved) { - if(!_CRT_INIT(hDLL, reason, reserved)) + // + // During ATTACH, we must call _CRT_INIT first. + // + if(reason == DLL_PROCESS_ATTACH || reason == DLL_THREAD_ATTACH) { - return FALSE; + if(!_CRT_INIT(hDLL, reason, reserved)) + { + return FALSE; + } } #endif + if(reason == DLL_PROCESS_ATTACH) { Ice::EventLoggerI::setModuleHandle(hDLL); @@ -38,6 +45,19 @@ ice_DLL_Main(HINSTANCE hDLL, DWORD reason, LPVOID reserved) Ice::ImplicitContextI::cleanupThread(); } +#ifndef __BCPLUSPLUS__ + // + // During DETACH, we must call _CRT_INIT last. + // + if(reason == DLL_PROCESS_DETACH || reason == DLL_THREAD_DETACH) + { + if(!_CRT_INIT(hDLL, reason, reserved)) + { + return FALSE; + } + } +#endif + return TRUE; } |