_CrtSetReportFile
Nachdem Sie _CrtSetReportMode
verwendet haben, um _CRTDBG_MODE_FILE
anzugeben, können Sie das Dateihandle angeben, um den Meldungstext zu empfangen. _CrtSetReportFile
wird auch von _CrtDbgReport
, _CrtDbgReportW
verwendet, um das Ziel des Texts anzugeben (nur Debugversion).
Syntax
_HFILE _CrtSetReportFile(
int reportType,
_HFILE reportFile
);
Parameter
reportType
Berichtstyp: _CRT_WARN
, _CRT_ERROR
und _CRT_ASSERT
.
reportFile
Neue Berichtsdatei für reportType
.
Rückgabewert
Nach erfolgreichem Abschluss gibt _CrtSetReportFile
die vorherige Berichtsdatei zurück, die für den Berichtstyp definiert ist, der in reportType
angegeben wird. Wenn ein ungültiger Wert für reportType
übergeben wird, ruft diese Funktion den Handler für ungültigen Parameter auf, wie in Parametervalidierung. Wenn die weitere Ausführung zugelassen wird, wird errno
auf EINVAL
festgelegt, und die Funktion gibt _CRTDBG_HFILE_ERROR
beschrieben. Weitere Informationen finden Sie untererrno
, _doserrno
, _sys_errlist
und _sys_nerr
.
Hinweise
_CrtSetReportFile
wird mit der _CrtSetReportMode
-Funktion verwendet, um das Ziel oder die Ziele für einen angegebenen Berichtstyp zu definieren, der von _CrtDbgReport
generiert wird. Wenn Sie _CrtSetReportMode
aufrufen, um den _CRTDBG_MODE_FILE
Berichtsmodus für einen bestimmten Berichtstyp zuzuweisen, rufen Sie auch _CrtSetReportFile
auf, um die Zieldatei oder den Zieldatenstrom anzugeben. Wenn _DEBUG
nicht definiert ist, werden Aufrufe von _CrtSetReportFile
während der Vorverarbeitung entfernt.
In der folgenden Liste werden die verfügbaren Optionen für reportFile
sowie das resultierende Verhalten von _CrtDbgReport
aufgeführt. Diese Optionen werden als Bitflags in Crtdbg.h definiert.
Dateihandle
Ein Handle für die Datei, die das Ziel der Meldungen ist. Es wird nicht versucht, die Gültigkeit des Handles zu überprüfen. Sie müssen das Handle für die Datei öffnen und schließen. Zum Beispiel:
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
Schreibt Meldungen an
stderr
, die wie folgt umgeleitet werden können: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
Schreibt Meldungen für
stdout
, die umgeleitet werden können._CRTDBG_REPORT_FILE
Gibt den aktuellen Berichtsmodus zurück.
Sie können die Berichtsdatei steuern, die von jedem Berichtstyp separat verwendet wird. Beispielsweise ist es möglich, anzugeben, dass ein reportType
_CRT_ERROR
Bericht von Berichten durchlaufen stderr
wird, während ein reportType
_CRT_ASSERT
Bericht über ein benutzerdefiniertes Dateihandle oder einen Datenstrom erstellt wird.
Anforderungen
Routine | Erforderlicher Header | Optionaler Header |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> | <errno.h> |
Die Konsole wird in UWP-Apps (Universelle Windows-Plattform) nicht unterstützt. Die mit der Konsole verknüpften Standardstreamhandles stdin
, stdout
und stderr
müssen umgeleitet werden, bevor sie von C-Laufzeitfunktionen in UWP-Apps verwendet werden können. Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Bibliotheken: Nur Debugversionen der CRT-Bibliotheksfunktionen.