Freigeben über


_CrtSetReportMode

Gibt das Ziel oder die Ziele für einen bestimmten Berichtstyp an, der von _CrtDbgReport generiert wird, sowie für alle Makros, die _CrtDbgReport, _CrtDbgReportW aufrufen, z. B. _ASSERT- und _ASSERTE-Makros, _ASSERT- und _ASSERTE-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.

Rückgabewert

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 reportType übergeben oder ein ungültiger Modus für reportMode angegeben wird, ruft _CrtSetReportMode den ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, legt diese Funktion errno auf EINVAL fest und gibt "– 1" zurück. Weitere Informationen finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr.

Hinweise

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

Berichtstyp

Beschreibung

_CRT_WARN

Warnungen, Meldungen und Informationen, die keine unmittelbare Aufmerksamkeit erfordern.

_CRT_ERROR

Fehler, nicht behebbare Probleme sowie Probleme, die unmittelbare Aufmerksamkeit erfordern.

_CRT_ASSERT

Assertionsfehler (ü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_DEBUG

Schreibt die Nachricht in das Ausgabefenster des Debuggers.

_CRTDBG_MODE_FILE

Schreibt die Nachricht an ein vom Benutzer bereitgestelltes Dateihandle. _CrtSetReportFile sollte aufgerufen werden, um die als Ziel zu verwendende bestimmte Datei bzw. den bestimmten Stream zu definieren.

_CRTDBG_MODE_WNDW

Erstellt ein Meldungsfeld, um die Meldung zusammen mit der Abort-, Retry- und Ignore-Schaltfläche anzuzeigen.

_CRTDBG_REPORT_MODE

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

Anforderungen

Routine

Erforderlicher Header

Optionaler Header

_CrtSetReportMode

<crtdbg.h>

<errno.h>

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

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