共享MFC DLL 手动添加 dllmain 函数处理 DLL_PROCESS_DETACH
如果使用共享MFC规则的DLL没有自动生成'dllmain'函数,你可以手动添加该函数来处理'DLL_PROCESS_DETACH'。
首先,在你的DLL项目中创建一个新的源文件(例如'dllmain.cpp'),然后在该文件中定义'dllmain'函数。以下是一个示例:
#include <afxwin.h>
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
// DLL加载时的处理
break;
case DLL_THREAD_ATTACH:
// 线程创建时的处理
break;
case DLL_THREAD_DETACH:
// 线程销毁时的处理
break;
case DLL_PROCESS_DETACH:
// DLL卸载时的处理
// 在这里进行你的处理逻辑
break;
}
return TRUE;
}
在'DLL_PROCESS_DETACH'的'case'分支中,你可以添加你需要的处理逻辑。例如,释放资源、关闭文件、清理内存等等。根据你的实际需求,你可以在这里编写你的代码。
最后,确保将'dllmain.cpp'添加到你的DLL项目中,并在项目设置中将其设置为源文件。这样,当你的DLL被卸载时,'dllmain'函数中的代码将会被执行。
请注意,如果你使用共享MFC规则创建的DLL,你可能已经有一个名为'MyDll.cpp'的源文件,其中已经定义了一个'CDllApp'类。在这种情况下,你可以将'dllmain'函数添加到'MyDll.cpp'文件中,而不是创建一个新的源文件。
原文地址: https://www.cveoy.top/t/topic/fAz1 著作权归作者所有。请勿转载和采集!