_CrtSetReportFile
После использования _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, and _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.
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.