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

C++ MFC Debug Assertion Failed! in static MFC

本文关键字:MFC 静态 失败 调试 断言 C++      更新时间:2023-10-16
Debug Assertion Failed!
File: f:ddvctoolsvc7libsshipatlmfcsrcmfcobjcore.cpp Line: 40

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

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

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

这就是为什么无论使用创建还是DoModal,tou都有相同的结果。

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

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

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