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