MFC 8.0的DllMain函数在获取DLL_PROCESS_DETACH时似乎不会调用ExitInstance。 一个可能的解决scheme是定义我自己的DllMain,但我怎么告诉链接器使用我的,而不是MFC的?
或者,有没有另一个覆盖,这是调用DLL_PROCESS_DETACH我不知道?
我使用/ clr编译的项目有类似的问题。 你是一样的吗? 我从来没有能够追踪到一个特定的条件,但改变一些静态初始化设置为null清除它。 我认为这与静态析构函数注册的顺序有关。
我不知道为什么你的ExitInstance没有被调用,但是可以通过将MFC的dllmodul.cpp文件的内容复制到你的dll文件中并添加任何额外的必需功能来定义你自己的DllMain。 该程序在本知识库文章中有记载。 虽然它是为MFC 4.0编写的,但是我已经成功地将这种方法用于使用MFC 8.0的应用程序。