_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 также принимать arg1arg2arg1_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 статье.

См. также

Отладка подпрограмм