Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
_CrtSetReportMode После указания _CRTDBG_MODE_FILEможно указать дескриптор файла для получения текста сообщения. _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.
Дескриптор файла
Дескриптор файла, который будет служить местом назначения для сообщений. Попытки проверить допустимость дескриптора не предпринимаются. Дескриптор файла необходимо открыть и закрыть. Например:
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 (UWP). Стандартные дескрипторы потока, связанные с консолью, stdinstdoutи stderr, должны быть перенаправлены перед тем, как функции времени выполнения C могут использовать их в приложениях UWP. Дополнительные сведения о совместимости см. в разделе Совместимость.
Библиотеки: только отладка версий библиотеки CRT.