共享MFC dll 没有 dllmain 如何处理 DLL_PROCESS_ATTACH 添加变量
如果你的共享MFC DLL没有提供DLL_PROCESS_ATTACH的处理函数dllmain,你可以手动添加一个全局变量来模拟DLL_PROCESS_ATTACH的功能。
首先,在你的共享MFC DLL的头文件中声明一个全局变量,例如:
extern "C" BOOL g_bDllLoaded;
然后,在你的共享MFC DLL的源文件中定义这个全局变量,并初始化为FALSE:
BOOL g_bDllLoaded = FALSE;
接下来,你可以在你的共享MFC DLL的某个函数中检查这个全局变量的值,来模拟DLL_PROCESS_ATTACH的处理。例如,在你的共享MFC DLL的初始化函数中,你可以将g_bDllLoaded设置为TRUE,并执行其他必要的初始化操作:
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
g_bDllLoaded = TRUE;
// 执行其他初始化操作
}
return TRUE;
}
这样,你就可以在你的共享MFC DLL的其他函数中使用g_bDllLoaded变量来判断DLL是否已加载,并根据需要执行相应的操作。
请注意,这只是一种模拟DLL_PROCESS_ATTACH功能的方法,并不是完全等同于使用dllmain函数处理DLL_PROCESS_ATTACH的方式。如果可能的话,建议在你的共享MFC DLL中提供一个正确实现的dllmain函数来处理DLL_PROCESS_ATTACH。
原文地址: http://www.cveoy.top/t/topic/hQXq 著作权归作者所有。请勿转载和采集!