C ++ MFC调试断言失败!在静态MFC中

时间:2012-05-19 18:28:02

标签: c++ debugging mfc assertion

Debug Assertion Failed!
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\objcore.cpp Line: 40

当我尝试使用调试配置 - Use MFC in a Static LibraryDynamic Library (.dll)进行DoModal(或创建)MFC窗口时,我遇到了这个问题。在Release配置上一切正常但我无法调试dll。 MS VS 2010

1 个答案:

答案 0 :(得分:1)

在发布版本中不会发生这种情况,因为代码使用的ASSERT在发布版本中没有任何意义。 ASSERT是一个调试工具。

您可能会感到惊讶,但MFC不使用Windows模式对话框。调用Create或DoModal可创建Windows无模式对话框。 MFC通过禁用父窗口(如果有的话)来实现模态,并提供具有类似于应用程序消息循环的自己的消息处理循环的对话框。

这就是为什么不管使用Create还是DoModal,tou都会有相同的结果。

在对话框显示之前是否会发生?

您在帖子中显示的错误表示您在应用程序代码中的某个位置尝试使用尚未实例化的对象,并且在对话框初始化期间为NULL。似乎它失败了IsKindOf检查。

是否可以压缩您的项目并将其发布给我们进行调试?