diff --git a/src/classlib/session.cc b/src/classlib/session.cc index a7ae10f..f473598 100644 --- a/src/classlib/session.cc +++ b/src/classlib/session.cc @@ -49,6 +49,43 @@ /*--[ Implement ]--------------------------------------------------------------------------------------------------*/ + using namespace PW3270_NAMESPACE; + +#if defined(linux) + static void onLoad() __attribute__((constructor)); + static void onUnLoad() __attribute__((destructor)); + + static void onLoad() + { + session::init(); + } + + static void onUnLoad() + { + session::deinit(); + } + +#endif // linux + +#ifdef _WIN32 + + BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) + { + switch(reason) + { + case DLL_PROCESS_ATTACH: + session::init(); + break; + + case DLL_PROCESS_DETACH + session::deinit(); + break; + } + } + +#endif // _WIN32 + + namespace PW3270_NAMESPACE { session * session::first = nullptr; diff --git a/src/java/main.cc b/src/java/main.cc index 08e984d..b3eaf2c 100644 --- a/src/java/main.cc +++ b/src/java/main.cc @@ -32,23 +32,6 @@ /*---[ Implement ]----------------------------------------------------------------------------------*/ -#if defined(linux) - static void onLoad() __attribute__((constructor)); - static void onUnLoad() __attribute__((destructor)); -#endif // linux - - using namespace PW3270_NAMESPACE; - - static void onLoad() - { - session::init(); - } - - static void onUnLoad() - { - session::deinit(); - } - namespace PW3270_NAMESPACE { jfieldID java::getHandleField(JNIEnv *env, jobject obj) { -- libgit2 0.21.2