_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
и принимать больше аргументов, _RPT1
а _RPTF1
также принимать arg1
arg2
arg1
_RPTF2
_RPT2
и т. д._RPTF0
_RPTF
Макросы _RPT
похожи на printf
функцию, так как их можно использовать для отслеживания хода выполнения приложения во время процесса отладки. Однако эти макросы являются более гибкими, чем printf
потому, что они не должны быть заключены в операторы #ifdef , чтобы предотвратить их вызов в розничной сборке приложения. Эта гибкость достигается с помощью _DEBUG
макроса, _RPT
а _RPTF
макросы доступны только при определении флага _DEBUG
. Если _DEBUG
не определено, вызовы этих макросов удаляются во время предварительной обработки.
Макросы _RPTW
и _RPTFW
являются версиями этих макросов для расширенных символов. Они подобны функции wprintf
и принимают в качестве аргументов строки расширенных символов.
Макросы _RPT
вызывают _CrtDbgReport
функцию для создания отчета отладки с сообщением пользователя. Макросы _RPTW
вызывают функцию _CrtDbgReportW
для создания того же отчета с расширенными символами. Макросы _RPTF
и _RPTFW
создают отчеты отладки, в котором помимо пользовательского сообщения указан файл исходного кода и номер строки, в которой был вызван макрос отчета. Сообщение пользователя создается путем подстановки arg[n]
аргументов в format
строку, используя те же правила, которые определены функцией printf
.
Функция _CrtDbgReport
или _CrtDbgReportW
создает отчет отладки и определяет места его назначения на основании текущих режимов отчета и файла, определенных для reportType
. _CrtSetReportFile
Функции _CrtSetReportMode
используются для определения назначений для каждого типа отчета.
_RPT
Если макрос вызывается и _CrtSetReportMode
_CrtSetReportFile
не вызывается, сообщения отображаются следующим образом:
Тип отчета | Назначение выходных данных |
---|---|
_CRT_WARN |
Текст предупреждения не отображается. |
_CRT_ERROR |
Всплывающее окно. То же самое, как если бы была указана функция _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); . |
_CRT_ASSERT |
Эквивалентно _CRT_ERROR . |
Когда назначение — это окно сообщения отладки, а пользователь выбирает кнопку _CrtDbgReport
"Повторить" или _CrtDbgReportW
возвращает значение 1. Это возвращаемое значение приводит к тому, что эти макросы запускают отладчик, если включена JIT-отладка. Дополнительные сведения об использовании этих макросов в качестве механизма обработки ошибок отладки см. в разделе "Макросы" для создания отчетов.
Существуют два других макроса, которые создают отчеты отладки. Макрос _ASSERT
создает отчет, но только если его аргумент выражения вычисляется FALSE
. _ASSERTE
точно так же _ASSERT
, как и выражение, но включает неудалось выражение в созданном отчете.
Требования
Макрос | Обязательный заголовок |
---|---|
_RPT Макросы |
<crtdbg.h> |
_RPTF Макросы |
<crtdbg.h> |
_RPTW Макросы |
<crtdbg.h> |
_RPTFW Макросы |
<crtdbg.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Библиотеки
Только отладочные версии библиотек времени выполнения языка C.
Хотя эти макросы доступны при включении crtdbg.h
, для запуска приложение должно связаться с одной из библиотек отладки, так как эти макросы вызывают другие функции времени выполнения.
Пример
См. пример в _ASSERT
статье.