加载我的MFC DLL时,会在dllmain
中实例化一个类。在卸载DLL或其进程完成时,如何释放为此分配的资源?这是由系统自动完成的吗?我正在使用Visual Studio 2008.谢谢。
答案 0 :(得分:2)
在你的dll main函数中只处理DLL_PROCESS_DETACH的情况。
BOOL WINAPI DllMain( HMODULE hDll, DWORD dwReason, PVOID pvReserved ) {
switch ( dwReason ) {
case DLL_PROCESS_DETACH:
// the dll is being detached, do you clean up here
break;
}
}
请记住,在DllMain()内部有些事情是不可能的,所以你想要保持你所做的一切非常快速和简单。
答案 1 :(得分:2)
使用全局new
变量替换T*
- 并在全局T
变量中存储指针。
这让自动C ++机器为你工作。
在DLL卸载时,会自动调用析构函数。
注意:支持从多个线程加载和卸载DLL可能会比较困难。
干杯&第h。,