_CrtSetReportMode
Указывает назначение или назначение для определенного типа отчета, созданного _CrtDbgReport
и любыми макросами, вызывающими _CrtDbgReport
, _CrtDbgReportW
например _ASSERT_EXPR
_ASSERTE
_ASSERT
, макросами и _RPT
, _RPTW
_RPTF
_RPTFW
макросами (только для отладки).
Синтаксис
int _CrtSetReportMode(
int reportType,
int reportMode
);
Параметры
reportType
Тип отчета: _CRT_WARN
, _CRT_ERROR
и _CRT_ASSERT
.
reportMode
Новый режим или режимы отчетов для reportType
.
Возвращаемое значение
При успешном завершении функция _CrtSetReportMode
возвращает предыдущий режим или режимы отчетов для типа отчета, указанного в параметре reportType
. Если недопустимое значение передается в качестве reportType
или недопустимом режиме, reportMode
_CrtSetReportMode
вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эта функции задает для errno
значение EINVAL
и возвращает -1. Дополнительные сведения см. в разделе errno
, _doserrno
, _sys_errlist
, и _sys_nerr
.
Замечания
Функция _CrtSetReportMode
определяет место назначения вывода для функции _CrtDbgReport
. Поскольку макросы _ASSERT
, _ASSERTE
, _RPT
и _RPTF
вызывают функцию _CrtDbgReport
, функция _CrtSetReportMode
определяет место назначения вывода текста, определенного этими макросами.
Если _DEBUG
это не определено, вызовы _CrtSetReportMode
удаляются во время предварительной обработки.
Если вы не вызываете _CrtSetReportMode
определение назначения выходных данных сообщений, то в силу применяются следующие значения по умолчанию:
Ошибки и сбои проверочного утверждения направляются в окно сообщений отладчика.
Предупреждения из Windows-приложений направляются в окно вывода отладчика.
Предупреждения от консольных приложений не отображаются.
В следующей таблице перечислены типы отчетов, определенные в Crtdbg.h
.
Тип отчета | Description |
---|---|
_CRT_WARN |
Предупреждения, сообщения и сведения, которые не требуют немедленного внимания. |
_CRT_ERROR |
Ошибки, неустранимые проблемы и ситуации, которые требуют немедленного внимания. |
_CRT_ASSERT |
Сбои проверочного утверждения (выражения, вычисление которых дает значение FALSE ). |
Функция _CrtSetReportMode
присваивает новый режим отчета, указанный в параметре reportMode
, типу отчета, указанному в параметре reportType
, и возвращает ранее определенный режим отчета для reportType
. В следующей таблице приведен список доступных вариантов для параметра reportMode
и соответствующее поведение функции _CrtDbgReport
. Эти параметры задаются в виде битовых флагов в файле Crtdbg.h.
Режим отчета | Поведение функции _CrtDbgReport |
---|---|
_CRTDBG_MODE_DEBUG |
Выводит сообщение в окно вывода отладчика. |
_CRTDBG_MODE_FILE |
Выводит сообщение в предоставленный пользователем дескриптор файла. _CrtSetReportFile необходимо вызвать, чтобы определить конкретный файл или поток, используемый в качестве назначения. |
_CRTDBG_MODE_WNDW |
Создает окно сообщения для отображения сообщения вместе с кнопками "Прерывание", "Повтор" и "Игнорировать ". |
_CRTDBG_REPORT_MODE |
Возвращает reportMode для заданного reportType :1 _CRTDBG_MODE_FILE 2 — . 4 — . |
Каждый тип отчета может создаваться с использованием одного, двух или трех режимов или вообще без режима. Таким образом, можно определить несколько назначений для одного типа отчета. Например, в следующем фрагменте кода сообщения о сбоях проверочного утверждения отправляются как в окно сообщений отладчика, так и в поток stderr
:
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
Кроме того, можно управлять режимом отчетов или режимами для каждого типа отчета отдельно. Например, можно указать, что объект reportType
_CRT_WARN
переходит в выходную строку отладки, в то время как _CRT_ASSERT
отображается с помощью окна сообщения отладки и отправляется stderr
в , как показано ранее.
Требования
Маршрут | Обязательный заголовок | Необязательный заголовок |
---|---|---|
_CrtSetReportMode |
<crtdbg.h> |
<errno.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Библиотеки: отладка версий только библиотек среды выполнения C.