Freigeben über


_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.

Siehe auch

Referenz

Debugroutinen