code_app/modules/saneui/dllmain.cpp

63 lines
1.4 KiB
C++
Raw Normal View History

#include "base/HGDef.h"
#include "base/HGInc.h"
#include "base/HGUtility.h"
#if defined (HG_CMP_MSC)
#include "qmfcapp.hpp"
#include "qwinwidget.hpp"
HINSTANCE g_hInst = NULL;
bool g_ownApplication = FALSE;
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
g_hInst = hInstance;
HGChar moduleName[512];
HGBase_GetModuleName(DllMain, moduleName, 512);
HGChar modulePath[512];
HGBase_GetFilePath(moduleName, modulePath, 512);
char *env = getenv("QT_QPA_PLATFORM_PLUGIN_PATH");
if (NULL == env)
{
char newEnv[256];
sprintf(newEnv, "QT_QPA_PLATFORM_PLUGIN_PATH=%s", modulePath);
putenv(newEnv);
}
else if (NULL == strstr(env, modulePath))
{
char *newEnv = new char [strlen(env) + 256];
sprintf(newEnv, "QT_QPA_PLATFORM_PLUGIN_PATH=%s;%s", env, modulePath);
putenv(newEnv);
delete []newEnv;
}
}
else if (dwReason == DLL_PROCESS_DETACH)
{
if (g_ownApplication)
delete qApp;
g_hInst = NULL;
}
return TRUE;
}
#else
void __attribute__((constructor)) global_load(void);
void __attribute__((destructor)) global_unload(void);
void global_load(void)
{
}
void global_unload(void)
{
}
#endif