1

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

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

4

2 回答 2

1

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

于 2009-03-26T23:39:31.267 回答
0

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

于 2009-06-04T03:06:36.613 回答