diff options
author | Steve Huston <shuston@riverace.com> | 1999-04-21 20:40:53 +0000 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 1999-04-21 20:40:53 +0000 |
commit | 91443c9a4c0e20e4200adf86063567230af90611 (patch) | |
tree | d4f3c495968b8d28dd6f3678047ba59c12a0ebbe /ace/ACE.cpp | |
parent | 3b276ab967e4fa6532cbc618dc40e1d1ce155e9f (diff) | |
download | ATCD-91443c9a4c0e20e4200adf86063567230af90611.tar.gz |
Add DllMain function from which to call ACE::init() and ACE::fini().
Diffstat (limited to 'ace/ACE.cpp')
-rw-r--r-- | ace/ACE.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/ace/ACE.cpp b/ace/ACE.cpp index cbed6851afa..b50afce9062 100644 --- a/ace/ACE.cpp +++ b/ace/ACE.cpp @@ -26,6 +26,34 @@ size_t ACE::pagesize_ = 0; // Size of allocation granularity. size_t ACE::allocation_granularity_ = 0; + +// If on Win32 and using non-static Object Manager, compile in a DllMain +// which will init the ACE library upon loading and tear it down on unloading. +#if defined (ACE_WIN32) && defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) +BOOL APIENTRY DllMain(HANDLE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved) +{ + switch( ul_reason_for_call ) + { + case DLL_PROCESS_ATTACH: + ACE::init(); + break; + + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + break; + + case DLL_PROCESS_DETACH: + ACE::fini(); + break; + } + + return TRUE; +} +#endif /* ACE_WIN32 && ACE_HAS_NONSTATIC_OBJECT_MANAGER */ + + int ACE::init (void) { |