_RPT, _RPTF, _RPTW, _RPTFW Macros
For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.
Tracks an application's progress by generating a debug report (debug version only). Note that n specifies the number of arguments in
args and can be 0, 1, 2, 3, 4, or 5.
_RPT n ( reportType, format, ...[args] ); _RPTFn( reportType, format, [args] ); _RPTWn( reportType, format [args] ); _RPTFWn( reportType, format [args] );
Format-control string used to create the user message.
Substitution arguments used by
All these macros take the
formatparameters. In addition, they might also take up to four additional arguments, signified by the number appended to the macro name. For example,
_RPTF0 take no additional arguments,
arg2, and so on.
_RPTF macros are similar to the printf function, because they can be used to track an application's progress during the debugging process. However, these macros are more flexible than
printf because they do not need to be enclosed in
#ifdef statements to prevent them from being called in a retail build of an application. This flexibility is achieved by using the _DEBUG macro; the
_RPTF macros are only available when the
_DEBUG flag is defined. When
_DEBUG is not defined, calls to these macros are removed during preprocessing.
_RPTFW macros are wide-character versions of these macros. They are like
wprintf and take wide-character strings as arguments.
_RPT macros call the _CrtDbgReport function to generate a debug report with a user message. The
_RPTW macros call the
_CrtDbgReportW function to generate the same report with wide characters. The
_RPTFW macros create a debug report with the source file and line number where the report macro was called, in addition to the user message. The user message is created by substituting the
arg[n] arguments into the
format string, using the same rules defined by the printf function.
_CrtDbgReportW generates the debug report and determines its destinations based on the current report modes and file defined for
reportType. The _CrtSetReportMode and _CrtSetReportFile functions are used to define the destinations for each report type.
_RPT macro is called and neither
_CrtSetReportFile has been called, messages are displayed as follows.
|Report type||Output destination|
|Warning text is not displayed.|
|A pop-up window. Same as if |
|Same as |
When the destination is a debug message window and the user chooses the Retry button,
_CrtDbgReportW returns 1, causing these macros to start the debugger, provided that just-in-time (JIT) debugging is enabled. For more information about using these macros as a debugging error handling mechanism, see Using Macros for Verification and Reporting.
Two other macros exist that generate a debug report. The _ASSERT macro generates a report, but only when its expression argument evaluates to FALSE. _ASSERTE is exactly like
_ASSERT, but includes the failed expression in the generated report.
For more compatibility information, see Compatibility in the Introduction.
Debug versions of C run-time libraries only.
Although these are macros and are obtained by including Crtdbg.h, the application must link with one of the debug libraries because these macros call other run-time functions.
See the example in the _ASSERT topic.
Not applicable. To call the standard C function, use
PInvoke. For more information, see Platform Invoke Examples.