_CrtSetReportFile
Nachdem Sie _CRTDBG_MODE_FILE mit _CrtSetReportMode angegeben haben, können Sie das Dateihandle angeben, um den Meldungstext zu empfangen._CrtSetReportFile wird auch durch _CrtDbgReport, _CrtDbgReportW verwendet, um das Ziel des Texts (nur Debugversion) anzugeben.
_HFILE _CrtSetReportFile( int reportType, _HFILE reportFile );
Parameter
reportType
Berichtstyp: _CRT_WARN, _CRT_ERROR und _CRT_ASSERT.reportFile
Neue Berichtsdatei für reportType.
Rückgabewert
Bei 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 in für reportType übergeben wird, Aufrufe dieser Funktion der ungültige Parameterhandler, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, wird errno zu EINVAL festgelegt 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 bzw. die Ziele für einen bestimmten Berichts zu definieren, der von _CrtDbgReport generiert wird.Wenn _CrtSetReportMode aufgerufen wurde, um den Berichtsfunktionen Modus _CRTDBG_MODE_FILE für einen bestimmten Berichts zuzuweisen, sollte _CrtSetReportFile dann aufgerufen werden, um bestimmte Datei oder einem Stream zu definieren, das als Ziel zu verwenden.Wenn _DEBUG nicht definiert ist, werden Aufrufe _CrtSetReportFile während des Präprozessorlaufs entfernt.
In der folgenden Tabelle wird eine Liste der verfügbaren Optionen für reportFile und das resultierende Verhalten von _CrtDbgReport an.Diese Optionen werden als Bitflags in Crtdbg.h definiert.
file handle
Ein Handle in die Datei, die das Ziel für Meldungen ist.Es wird nicht versucht, die Gültigkeit des Handles zu überprüfen gemacht.Sie müssen das Handle zur 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 stderr Meldung, die umgeleitet werden kann, wie folgt: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 stdout Meldung, die Sie festlegen können._CRTDBG_REPORT_FILE
Gibt den aktuellen Berichtsmodus zurück.
Die Berichtsdatei, die von jedem Berichts verwendet wird, kann separat gesteuert werden.Beispielsweise ist möglich, anzugeben, dass reportType von _CRT_ERROR zu stderr gemeldet wird, während reportType von _CRT_ASSERT zu einem benutzerdefinierten Dateihandle oder einem Stream gemeldet wird.
Anforderungen
Routine |
Erforderlicher Header |
Optionaler Header |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> |
<errno.h> |
Die Konsole wird nicht in Windows Store-App unterstützt.Die Standardstreamhandles, die mit der Konsole, stdin, stdout und stderr zugeordnet werden, müssen umgeleitet werden, bevor sie C-Laufzeitfunktionen in Windows Store-App verwenden können.Weitere Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.
Bibliotheken: Debugversionen von nur CRT-Bibliotheks-Funktionen.
Beispiel
Siehe report.
.NET Framework-Entsprechung
Nicht zutreffend. Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.