2023-03-30 02:49:00 +00:00
|
|
|
|
#include "base/HGDef.h"
|
|
|
|
|
#include "base/HGInc.h"
|
|
|
|
|
#include "base/HGUtility.h"
|
|
|
|
|
|
|
|
|
|
#if defined (HG_CMP_MSC)
|
2023-03-30 10:20:26 +00:00
|
|
|
|
#include "qmfcapp.hpp"
|
|
|
|
|
#include "qwinwidget.hpp"
|
2023-03-29 14:46:41 +00:00
|
|
|
|
|
|
|
|
|
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;
|
2023-03-30 02:49:00 +00:00
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
2023-03-29 14:46:41 +00:00
|
|
|
|
}
|
|
|
|
|
else if (dwReason == DLL_PROCESS_DETACH)
|
|
|
|
|
{
|
|
|
|
|
if (g_ownApplication)
|
|
|
|
|
delete qApp;
|
|
|
|
|
g_hInst = NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
2023-03-30 02:49:00 +00:00
|
|
|
|
#else
|
|
|
|
|
|
|
|
|
|
void __attribute__((constructor)) global_load(void);
|
|
|
|
|
void __attribute__((destructor)) global_unload(void);
|
|
|
|
|
|
|
|
|
|
void global_load(void)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void global_unload(void)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|