我已经在c ++中创建了一个dll,它在所有活动进程中加载。我想知道这个dll只有一次加载,并且所有进程都会共享该单个副本。
CPhoneticProcessor * g_pPhoneticProcessor = NULL;
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
g_pProcessor = new CPProcessor();
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
if(g_pProcessor)
delete g_pProcessor;
g_pProcessor = NULL;
break;
}
return TRUE;
}
每个进程加载dll时,它会创建类CPProcessor的新实例,因此我只希望在所有进程之间共享一个实例。 任何人都可以帮助我吗?
答案 0 :(得分:0)
您可以使用data_seg feaure.Plese检查以下链接。
https://msdn.microsoft.com/en-us/library/h90dkhs0(VS.80).aspx