_RPT, _RPTF, _RPTW, _RPTFW宏

通过生成调试报表来跟踪应用程序的进度 (请只调试版本)。 请注意 n 在 args 指定参数的数目,也可以是 0, 1, 2, 3, 4 或 5。

_RPTn(
   reportType,
   format,
...[args]
);
_RPTFn(
   reportType,
   format,
   [args]
);
_RPTWn(
   reportType,
   format 
   [args]
);
_RPTFWn(
   reportType,
   format 
   [args]
);

参数

  • reportType
    报告类型: _CRT_WARN_CRT_ERROR_CRT_ASSERT

  • format
    用于的布局控制字符串创建用户消息。

  • args
    format使用的替换参数。

备注

所有这些宏采用 reportType和 format参数。 此外,它们还可能包含四个附加参数,由该数字追加到宏的名称。 例如, _RPT0_RPTF0 不采用附加参数, _RPT1 ,并 _RPTF1 采用 arg1, _RPT2 ,并 _RPTF2 采用 arg1 和 arg2,依此类推。

,因为它们可用于跟踪应用程序的进度在调试过程中, _RPT_RPTF 宏类似于 printf 功能。 但是,在中,因为它们在 #ifdef 语句在应用程序的发布版本,不需要括防止它们调用这些宏比 printf 灵活。 使用 _DEBUG 宏,此灵活性实现;,当 _DEBUG 标志后, _RPT_RPTF 宏才可用。 当 _DEBUG 未定义时,在预处理期间,对这些宏中移除。

_RPTW_RPTFW 宏是这些宏的宽字符版本。 它们与 wprintf 并执行宽字符字符串作为参数。

_RPT 宏调用 _CrtDbgReport 函数生成与用户消息的调试报表。 _RPTW 宏调用 _CrtDbgReportW 函数生成与宽字符的同一报表。 除了用户消息外, _RPTF_RPTFW 宏将报告宏调用的源文件和行号创建一个调试报告,。 用户消息是通过替换 argn[] 参数创建的。 format 字符串,则使用 printf 函数定义的规则相同。

_CrtDbgReport_CrtDbgReportW 生成调试报表并确定基于当前报告模式和文件的目标其定义为 reportType。 _CrtSetReportMode_CrtSetReportFile 函数用于定义各报表类型的目标。

如果 _RPT 宏调用,并 _CrtSetReportMode_CrtSetReportFile 未调用,消息按如下方式显示。

报告类型

输出目标

_CRT_WARN

警告文本不会显示。

_CRT_ERROR

弹出窗口。 同样,就象 _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); 指定了。

_CRT_ASSERT

_CRT_ERROR 相同。

当为目标是调试消息窗口时,并且用户选择 重试 按钮, _CrtDbgReport_CrtDbgReportW 返回 1,使这些宏,启动调试器,在启用实时 (JIT)调试时条件下。 有关使用这些宏的更多信息作为调试错误处理机制,请参见 使用验证或报告的宏

生成一个调试报告的其他两宏存在。 ,仅在其表达式参数的计算结果为 false 时, _ASSERT 宏生成报告,但是,。 _ASSERTE 是方式与 _ASSERT,但是,包含该失败的表达式在生成的报告。

要求

必需的头

_RPT

crtdbg.h

_RPTF

crtdbg.h

_RPTW

crtdbg.h

_RPTFW

crtdbg.h

有关更多兼容性信息,请参见中介绍的 兼容性

只调试 C 运行库 的版本。

虽然是宏和传递包含 Crtdbg.h 获取,应用程序必须使用一调试库链接,因为这些宏调用其他运行时功能。

示例

_ASSERT 参见主题中的示例。

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例

请参见

参考

调试实例