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

标签 c++ debugging mfc assertion

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

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

最佳答案

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

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

这就是为什么无论使用 Create 还是 DoModal 都会得到相同结果的原因。

它会在对话框显示之前发生吗?

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

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

关于C++ MFC 调试断言失败!在静态 MFC 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667837/

相关文章:

C++ 如何让一个函数返回调用它的对象?

ruby-on-rails - 使用 better_errors 作为调试器?

c++ - 使用#if Defined(_DEBUG)

c++ - C++数组中初始化列表的类型是什么?

c++ - 如何在/art/runtime/oat_file_assistant.cc中引入OpenSSL模块?

c++ - 在 C++ 中构建后缀树

Visual Studio 的 Python 工具在子进程中设置断点

c++ - 进入 Xcode 5 中的 STL 源代码

c++ - MFC120u.dll "missing"

c++ - 如何创建一个MFC CSliderCtrl?