_CrtSetReportMode
为 _CrtDbgReport 和所有宏生成的特定报告类型指定调用 _CrtDbgReport, _CrtDbgReportW,例如 _ASSERT, _ASSERTE宏, _ASSERT, _ASSERTE宏、 _RPT, _RPTF, _RPTW, _RPTFW宏和 _RPT, _RPTF, _RPTW, _RPTFW宏 的目标或目标 (请只调试版本)。
int _CrtSetReportMode(
int reportType,
int reportMode
);
参数
reportType
报告类型: _CRT_WARN、 _CRT_ERROR和 _CRT_ASSERT。reportMode
新的报表模式或模式 reportType的。
返回值
在成功完成, _CrtSetReportMode 返回以前的报表模式或图案。 reportType指定的报告类型的。 如果一个无效值传递,当 reportType 或无效的模式。 reportMode指定, _CrtSetReportMode 调用无效参数处理程序 参数验证如中所述。 如果执行允许继续,此功能设置 errno 到 EINVAL 并返回 -1。 有关更多信息,请参见 errno、_doserrno、_sys_errlist和_sys_nerr。
备注
_CrtSetReportMode 为 _CrtDbgReport指定输出目标。 由于宏 _ASSERT、 _ASSERTE、 _RPT和 _RPTF 调用 _CrtDbgReport, _CrtSetReportMode 指定文本的输出目标指定与宏。
当 _DEBUG 未定义时,在预处理期间,对 _CrtSetReportMode 中移除。
如果不调用 _CrtSetReportMode 定义消息的输出目标,则以下默认实际上是:
断言失败和错误处理到调试消息窗口。
从 windows 应用程序的警告被发送到调试器的 " 输出 " 窗口中。
从控制台应用程序的警告不会显示。
下表列出了在 Crtdbg.h 定义的报表类型。
报告类型 |
说明 |
---|---|
_CRT_WARN |
警告、无需立即关注的消息和信息。 |
_CRT_ERROR |
错误,需要立即关注的不可恢复的问题,并发出。 |
_CRT_ASSERT |
断言失败 (计算为 FALSE) 的断言表达式。 |
_CrtSetReportMode 函数分配在 reportMode 指定的新报表模式到 reportType 指定的报表类型和返回 reportType的以前定义的报表模式。 下表列出了 reportMode 可用的选项和 _CrtDbgReport发生的行为。 这些选项定义为 Crtdbg.h 的位标志。
报告模式 |
_CrtDbgReport 行为 |
---|---|
_CRTDBG_MODE_DEBUG |
消息写入到调试器的 " 输出 " 窗口中。 |
_CRTDBG_MODE_FILE |
对一个用户提供的文件句柄的消息。 应调用_CrtSetReportFile 定义特定文件或流用作为目标。 |
_CRTDBG_MODE_WNDW |
创建一个消息框与 Abort、 Retry和 Ignore 按钮时显示消息。 |
_CRTDBG_REPORT_MODE |
返回指定的 reportType的 reportMode : 1 _CRTDBG_MODE_FILE 2 _CRTDBG_MODE_DEBUG 4 _CRTDBG_MODE_WNDW |
每个报表类型可以报告使用一个,两个或三个模式或无模式。 因此,可能会具有多对单个报表类型定义的一个目标。 例如,下面的代码片段导致断言不发送到调试消息窗口和。 stderr:
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
此外,报告模式或模式每个报告类型。可以单独进行控制。 例如,指定是可能的 _CRT_WARNreportType 发送到输出调试,字符串,而 _CRT_ASSERT 显示使用调试消息窗口并发送到 stderr,如以前声明。
要求
实例 |
必需的头 |
可选标头 |
---|---|---|
_CrtSetReportMode |
crtdbg.h |
errno.h |
有关更多兼容性信息,请参见中介绍的 兼容性 。
库: 只调试 CRT库功能 的版本。
示例
请参见 report。
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例。