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

Siehe auch

Referenz

Debug- Routinen