MFC 罐头 DllMain 不为 DLL_PROCESSS_DETACH 调用 ExitInstance?
Posted
技术标签:
【中文标题】MFC 罐头 DllMain 不为 DLL_PROCESSS_DETACH 调用 ExitInstance?【英文标题】:MFC canned DllMain does not call ExitInstance for DLL_PROCESSS_DETACH? 【发布时间】:2009-03-26 21:26:59 【问题描述】:MFC 8.0 的固定 DllMain 在获得 DLL_PROCESS_DETACH 时似乎没有调用 ExitInstance。一种可能的解决方案是定义我自己的 DllMain,但我如何告诉链接器使用我的而不是 MFC?
或者,我不知道是否有另一个在 DLL_PROCESS_DETACH 上调用的覆盖?
【问题讨论】:
【参考方案1】:我在使用 /clr 编译的项目中遇到过类似的问题。你有同样的情况吗?我永远无法将其跟踪到特定条件,但是将一些静态初始化程序更改为设置 null 清除了它。我认为这与静态析构函数的注册顺序有关。
【讨论】:
用/clr编译;我明天一定要检查一下。【参考方案2】:我不确定为什么不调用您的 ExitInstance,但是可以通过将 MFC 的 dllmodul.cpp 文件的内容复制到您的 dll 中的文件中并添加任何额外的必需功能来定义您自己的 DllMain。该过程记录在this MS knowledge base article 中。虽然它是为 MFC 4.0 编写的,但我已经成功地将这种方法用于使用 MFC 8.0 的应用程序。
【讨论】:
以上是关于MFC 罐头 DllMain 不为 DLL_PROCESSS_DETACH 调用 ExitInstance?的主要内容,如果未能解决你的问题,请参考以下文章