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