63 lines
1.4 KiB
C++
63 lines
1.4 KiB
C++
|
#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
|