gpt4 book ai didi

c++ - 控制台正在拦截我所有的断言消息

转载 作者:行者123 更新时间:2023-11-28 01:05:12 27 4
gpt4 key购买 nike

我有一个简单的断言宏,可以打印出一条消息。这通常在应用程序不是控制台应用程序时有效(即我得到一个弹出的漂亮对话框,并且包含消息的表达式,此时我可以点击重试进行调试)但是当它是时,控制台会拦截所有消息.当控制台隐藏在 IDE 后面时,这变得很烦人,我必须把它捞出来,然后返回到断言对话框,然后点击重试进行调试。

有什么方法可以阻止它拦截消息,以便弹出的对话框包含所有信息。

宏是这样的:

#define MyAssert(_Exp, _Msg) assert(_Exp && _Msg)

编辑:截图

enter image description here

最佳答案

CRT 会尝试根据应用程序的类型确定您希望断言输出的位置。它从可执行文件 (/SUBSYSTEM) 的类型中检测到这一点。但是,您可以使用 _set_app_type 覆盖,以便 CRT 的行为就像您的控制台应用程序是 Windows 应用程序一样。更有可能的是,您只想影响断言,因此应该调用 _CrtSetReportMode 更改为 _CRTDBG_MODE_WNDW

您没有指定您的 VS 版本,但这些版本适用于所有最新版本(在 VS2003 中有细微的命名差异)。

马丁

关于c++ - 控制台正在拦截我所有的断言消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6573552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com