如果你的共享 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。

没有 DLLmain 时,如何处理共享 MFC DLL 的加载

原文地址: https://www.cveoy.top/t/topic/fAze 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录