Share via


_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 宏创建利用报告宏调用的源文件和行号的调试报告。 用户消息通过重写 arg[n] 的参数创建到 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。有关更多信息,请参见平台调用示例

请参见

参考

调试例程