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


_CrtSetReportFile

После определения _CRTDBG_MODE_FILE с _CrtSetReportMode, можно указать дескриптор файла для получения текста сообщения._CrtSetReportFile также используется _CrtDbgReport, _CrtDbgReportW, чтобы определить назначение текста (отладочную версию только).

_HFILE _CrtSetReportFile( 
   int reportType,
   _HFILE reportFile 
);

Параметры

  • reportType
    Тип отчета: _CRT_WARN, _CRT_ERROR и _CRT_ASSERT.

  • reportFile
    Новый файл отчета для reportType.

Возвращаемое значение

При успешном завершении, _CrtSetReportFile возвращает предыдущий файл отчета, определенный для типа отчетов, указанного в reportType.Если передается в недопустимое значение для reportType, эта функция вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если среда выполнения может продолжить, свойство errno имеет значение EINVAL и функция возвращает значение _CRTDBG_HFILE_ERROR.Для получения дополнительной информации см. errno, _doserrno, _sys_errlist и _sys_nerr.

Заметки

_CrtSetReportFile используется с функцией _CrtSetReportMode, чтобы определить назначение или назначения для определенного типа, созданного отчета _CrtDbgReport.Если метод _CrtSetReportMode был вызван для присвоения режим отчетов _CRTDBG_MODE_FILE для конкретного типа отчета _CrtSetReportFile, затем следует вызывается, чтобы определить конкретные файл или поток для использования в качестве назначения.Если _DEBUG не определен, то вызовы _CrtSetReportFile удаляются во время предварительной обработки.

В следующей таблице приведен список доступных вариантов для reportFile и выполняется результирующее расширения функциональности _CrtDbgReport.Эти параметры задаются в виде бит (в Crtdbg.h.

  • file handle
    Дескриптор в файл, предназначенный для отображения сообщений.Не предпринимается попытка проверить допустимость дескриптора.Необходимо открыть и закрыть дескриптор файла.Например:

       HANDLE hLogFile;
       hLogFile = CreateFile("c:\\log.txt", GENERIC_WRITE, 
          FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 
          FILE_ATTRIBUTE_NORMAL, NULL);
       _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
       _CrtSetReportFile(_CRT_WARN, hLogFile);
    
       _RPT0(_CRT_WARN,"file message\n");
       CloseHandle(hLogFile);
    
  • _CRTDBG_FILE_STDERR
    Записывает сообщение в stderr, который можно перенаправить следующим образом:

       freopen( "c:\\log2.txt", "w", stderr);
       _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
       _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
    
       _RPT0(_CRT_ERROR,"1st message\n");
    
  • _CRTDBG_FILE_STDOUT
    Записывает сообщение в stdout, который можно перенаправление.

  • _CRTDBG_REPORT_FILE
    Возвращает текущий режим обработки.

Файл отчета используется каждым типом отчета можно управлять отдельно.Например, можно указать, что уведомление reportType**_CRT_ERROR** в stderr, когда reportType**_CRT_ASSERT** уведомление к определяемым пользователем дескриптора файла или поток.

Требования

Функция

Требуемый заголовок

Необязательный заголовок

_CrtSetReportFile

<crtdbg.h>

<errno.h>

Консоль не поддерживается в приложениях Магазина Windows.Стандартные дескрипторы потока, связанные с консолью, stdin, stdout и stderr, необходимо перенаправить до функции C времени выполнения могут использовать их в приложениях Магазина Windows.Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

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

Пример

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

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

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

См. также

Ссылки

Подпрограммы отладка