将动态库更改为静态库时发生此问题。代码干净地编译,但在应用程序启动期间,在使用静态库的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
,其中发生此断言失败。