在Windows中是否有办法通过断言(..)函数避免CRT对话失败?我喜欢将错误消息打印到控制台。如果我们没有在优化版本中定义NDEBUG来实现这个目的,可以使用CrtReportMode(..)吗?
-Kartlee
答案 0 :(得分:4)
您可以使用_CrtSetReportMode
和_CrtSetReportFile
将输出发送到文件(在本例中为stderr
)。
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE)
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
关于在发布版本中的使用,请注意备注和库部分:
如果未定义_DEBUG,则在预处理期间将删除对_CrtSetReportMode的调用。
库:仅限C运行时库的调试版本。