_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

创建一个消息框与 AbortRetryIgnore 按钮时显示消息。

_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。有关更多信息,请参见 平台调用示例

请参见

参考

调试实例