_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).
_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 beschrieben. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL gesetzt, und die Funktion gibt _CRTDBG_HFILE_ERROR zurück. Weitere Informationen finden Sie unter errno, _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 _CrtSetReportMode aufgerufen wurde, um den _CRTDBG_MODE_FILE-Berichtsmodus für einen bestimmten Berichtstyp zuzuweisen, dann sollte _CrtSetReportFile aufgerufen werden, um die bestimmte Datei oder den Stream festzulegen, der als Ziel verwendet wird. Wenn _DEBUG nicht definiert ist, werden Aufrufe von _CrtSetReportFile während der Vorverarbeitung entfernt.
In der folgenden Tabelle wird eine Liste der verfügbaren Optionen für reportFile sowie das resultierende Verhalten von _CrtDbgReport gezeigt. Diese Optionen werden als Bitflags in Crtdbg.h definiert.
file handle
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. 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.
Die Berichtsdatei, die von jedem Berichtstyp verwendet wird, kann separat gesteuert werden. So kann beispielsweise angegeben werden, dass ein reportType von _CRT_ERROR an stderr gemeldet wird, während ein reportType von _CRT_ASSERT an ein benutzerdefiniertes Dateihandle oder einen Stream gemeldet wird.
Anforderungen
Routine |
Erforderlicher Header |
Optionaler Header |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> |
<errno.h> |
Die Konsole wird in Windows Store-Apps nicht unterstützt. Die mit der Konsole verknüpften Standardstreamhandles, stdin, stdout und stderr, müssen umgeleitet werden, bevor sie von C-Laufzeitfunktionen in Windows Store-Apps verwendet werden können. Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Bibliotheken: nur Debugversionen von CRT-Bibliotheksfunktionen.
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.