使用DLL的MFC无法初始化,在AfxCoreInitModule中断言

时间:2014-06-02 09:33:36

标签: c++ visual-c++ dll mfc

将动态库更改为静态库时发生此问题。代码干净地编译,但在应用程序启动期间,在使用静态库的DLL初始化期间断言AfxCoreInitModule时,AfxGetModuleState() != AfxGetAppModuleState()中的命令被命中。从那时起,所有资源都无法加载。

在其他地方唯一提到这种情况似乎是由于Boost.Thread库中的一个错误(例如问题:Adding #include <boost/thread/mutex.hpp> breaks my ActiveX control?),虽然使用了一些Boost,但是线程库不是这样的这不是解决方案。

静态库本身不包含任何MFC资源,仅使用某些序列化功能。它们最初设置为定义自己的DllMain,它将调用AfxInitExtensionModule,而不像调用DLL仍在使用dllmodul.cpp中定义的MFC提供的DllMain,其中发生此断言失败。

0 个答案:

没有答案