_CrtSetReportMode

 

Veröffentlicht: Juli 2016

Die neueste Dokumentation zu Visual Studio 2017 finden Sie unter Dokumentation zu Visual Studio 2017.

Gibt das Ziel oder die Ziele für einen bestimmten Berichtstyp von generierten _CrtDbgReport und Makros, die aufgerufen werden _CrtDbgReport _CrtDbgReportW, wie z. B. _ASSERT-und _ASSERTE, _ASSERT_EXPR Makros, _ASSERT-und _ASSERTE, _ASSERT_EXPR Makros, _RPT, _RPTF-, _RPTW-und _RPTFW-Makros, und _RPT, _RPTF-, _RPTW-und _RPTFW-Makros (nur Debugversion).

int _CrtSetReportMode(   
   int reportType,  
   int reportMode   
);  

Parameter

reportType
Berichtstyp: _CRT_WARN, _CRT_ERROR und _CRT_ASSERT.

reportMode
Neuer Berichtsmodus bzw. neue Berichtsmodi für reportType.

Nach erfolgreichem Abschluss gibt _CrtSetReportMode den vorherigen Berichtsmodus bzw. die Berichtsmodi für den Berichtstyp zurück, der in reportType angegeben ist. Wenn ein ungültiger Wert, als übergeben wird reportType oder ein ungültiger Modus für angegeben wird reportMode, _CrtSetReportMode wird der Handler für ungültige Parameter aufgerufen, wie in beschrieben Parametervalidierung. Wenn die weitere Ausführung zugelassen wird, setzt diese Funktion errno auf EINVAL und gibt "-1" zurück. Weitere Informationen finden Sie unter Errno, _doserrno, _sys_errlist und _sys_nerr.

_CrtSetReportMode gibt das Ausgabeziel für _CrtDbgReport an. Da die Makros _ASSERT, _ASSERTE, _RPT und _RPTF die _CrtDbgReport-Funktion aufrufen, gibt _CrtSetReportMode das Ausgabeziel von Text an, der mit diesen Makros festgelegt wurde.

Wenn _DEBUG nicht definiert ist, werden Aufrufe von _CrtSetReportMode während der vorverarbeitung entfernt.

Wenn Sie _CrtSetReportMode nicht zum Definieren des Ausgabeziels der Meldungen aufrufen, sind die folgenden Standardwerte gültig:

  • Assertionsfehler werden an ein Debugmeldungsfenster weitergeleitet.

  • Warnungen von Windows-Anwendungen werden an das Ausgabefenster des Debuggers gesendet.

  • Warnungen von Konsolenanwendungen werden nicht angezeigt.

In der folgenden Tabelle werden die Berichtstypen aufgeführt, die in "Crtdbg.h" definiert sind.

BerichtstypBeschreibung
_CRT_WARNWarnungen, Meldungen und Informationen, die keine unmittelbare Aufmerksamkeit erfordern.
_CRT_ERRORFehler, nicht behebbare Probleme sowie Probleme, die unmittelbare Aufmerksamkeit erfordern.
_CRT_ASSERTAssertionsfehler (überwachte Ausdrücke, die FALSE ergeben).

Die _CrtSetReportMode-Funktion weist den in reportMode angegebenen neuen Berichtsmodus dem Berichtsmodus zu, der in reportType angegeben ist, und gibt den zuvor definierten Berichtsmodus für reportType zurück. In der folgenden Tabelle werden die verfügbaren Optionen für reportMode sowie das resultierende Verhalten von _CrtDbgReport aufgeführt. Diese Optionen werden als Bitflags in Crtdbg.h definiert.

Berichtsmodus_CrtDbgReport-Verhalten
_CRTDBG_MODE_DEBUGSchreibt die Nachricht in das Ausgabefenster des Debuggers.
_CRTDBG_MODE_FILESchreibt die Nachricht an ein vom Benutzer bereitgestelltes Dateihandle. _CrtSetReportFile aufgerufen werden, um die Datei oder den Stream als Ziel verwenden.
_CRTDBG_MODE_WNDWErstellt ein Meldungsfeld, um die Meldung zusammen mit der Abort-, Retry- und Ignore-Schaltfläche anzuzeigen.
_CRTDBG_REPORT_MODEGibt reportMode für den angegebenen reportType-Parameter zurück.

1 _CRTDBG_MODE_FILE

2 _CRTDBG_MODE_DEBUG

4 _CRTDBG_MODE_WNDW

Jeder Berichtstyp kann mithilfe von einem, zwei oder drei Modi oder keinem Modus gemeldet werden. Daher ist es möglich, mehrere Ziele festzulegen, die für einen einzelnen Berichtstyp definiert werden. Beispielsweise führt das folgende Codefragment dazu, dass Assertionsfehler an einen Debugmeldungsfenster und an stderr gesendet werden:

_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );  
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );  

Außerdem können die Berichterstellungsmodi für jeden Berichtstyp separat gesteuert werden. Sie können beispielsweise angeben, dass ein reportType-Parameter von _CRT_WARN an eine Ausgabedebugzeichenfolge gesendet wird, während _CRT_ASSERT mithilfe eines Debugmeldungsfensters angezeigt und an stderr gesendet wird, wie zuvor veranschaulicht wurde.

RoutineErforderlicher HeaderOptionaler Header
_CrtSetReportMode<crtdbg.h><errno.h>

Weitere Informationen zur Kompatibilität finden Sie unter Compatibility in der Einführung.

Bibliotheken: Debugversionen von CRT-Bibliotheksfunktionen nur.

Nicht zutreffend. Mit PInvokerufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Debugroutinen

Anzeigen: