MFC罐装DllMain不会为DLL_PROCESSS_DETACH调用ExitInstance?

时间:2009-03-26 21:26:59

标签: windows dll mfc dynamic-linking

当获得DLL_PROCESS_DETACH时,MFC 8.0的固定DllMain似乎不会调用ExitInstance。一种可能的解决方案是定义我自己的DllMain,但是如何告诉链接器使用我的而不是MFC?

或者,是否有另一个在DLL_PROCESS_DETACH上调用的覆盖我不知道?

2 个答案:

答案 0 :(得分:1)

对于使用/ clr编译的项目,我遇到过类似的问题。你处于同样的境地吗?我永远无法将其跟踪到特定条件,但是将一些静态初始化器更改为set null会将其清除。我认为它与静态析构函数的注册顺序有关。

答案 1 :(得分:0)

我不确定为什么没有调用ExitInstance,但是可以通过将MFC的dllmodul.cpp文件的内容复制到dll中的文件并添加任何额外的必需功能来定义自己的DllMain。该程序记录在this MS knowledge base article中。虽然它是为MFC 4.0编写的,但我已经成功地将此方法用于使用MFC 8.0的应用程序。