Поделиться через


_CrtSetReportMode

Задает назначение или назначения для определенного типа отчета, создаваемого _CrtDbgReport и всеми макросами, которые вызывают _CrtDbgReport, _CrtDbgReportW, например Макрос _ASSERT, _ASSERTE, Макрос _ASSERT, _ASSERTE, Макросы _RPT, _RPTF, _RPTW, _RPTFW и Макросы _RPT, _RPTF, _RPTW, _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, and _sys_nerr.

Заметки

_CrtSetReportMode определяет выходное назначение для _CrtDbgReport. Поскольку макросы _ASSERT, _ASSERTE, _RPT и _RPTF вызывают _CrtDbgReport, _CrtSetReportMode определяет выходное назначение текста, определенного этими макросами.

Если _DEBUG не определен, то вызовы _CrtSetReportMode удаляются во время предварительной обработки.

Если не вызывается _CrtSetReportMode для определения назначения вывода сообщений, используются следующие действия по умолчанию:

  • Ошибки и сбои проверочного утверждения направляются в окно сообщений отладчика.

  • Предупреждения из Windows-приложений отправляются в окно вывода отладчика.

  • Предупреждения из консольных приложений не отображаются.

В следующей таблице перечислены типы сообщений, определенные в Crtdbg.h.

Тип отчета

Описание

_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

Создает окно сообщения для отображения сообщения вместе с кнопками Abort, Retry и Ignore.

_CRTDBG_REPORT_MODE

Возвращает reportMode для заданного reportType:

1   _CRTDBG_MODE_FILE

2   _CRTDBG_MODE_DEBUG

4   _CRTDBG_MODE_WNDW

Каждый тип отчета может быть использован с помощью одной, двух или трех моделей или без моделей вообще. Следовательно, можно иметь несколько назначений, заданных для одного типа отчета. Например, в следующем фрагменте кода сообщения о сбоях проверочного утверждения отправляются и в окно сообщений отладчика, и в 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>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Версии Библиотеки: Отладочные версии только для Функции библиотеки CRT.

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.

См. также

Ссылки

Процедуры отладки