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