Freigeben über


_CrtSetReportMode

Gibt das Ziel oder die Ziele für einen bestimmten Berichtstyp an, der von _CrtDbgReport makros generiert wird, und alle Makros, die aufgerufen _CrtDbgReportwerden,_CrtDbgReportW z_ASSERT. B. , _ASSERTE_ASSERT_EXPR Makros und_RPT , _RPTF, _RPTW_RPTFW Makros (nur Debugversion).

Syntax

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 oder ein ungültiger Modus angegeben reportModewird, _CrtSetReportMode wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, setzt diese Funktion errno auf EINVAL und gibt "-1" zurück. Weitere Informationen finden Sie untererrno, _doserrno, _sys_errlistund _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 nicht aufrufen _CrtSetReportMode , um das Ausgabeziel von Nachrichten zu definieren, sind die folgenden Standardwerte wirksam:

  • Assertionsfehler werden an ein Debugmeldungsfenster weitergeleitet.

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

  • Warnungen aus Konsolenanwendungen werden nicht angezeigt.

In der folgenden Tabelle sind die berichtstypen aufgeführt, die in Crtdbg.h.

Berichtstyp Beschreibung
_CRT_WARN Warnungen, Nachrichten und Informationen, die keine sofortige 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 spezifische Datei oder den datenstrom zu definieren, die als Ziel verwendet werden soll.
_CRTDBG_MODE_WNDW Erstellt ein Meldungsfeld, um die Nachricht zusammen mit den Schaltflächen "Abbrechen", "Wiederholen" und "Ignorieren " 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, für einen einzelnen Berichtstyp mehr als ein Ziel definiert zu haben. 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 );

Darüber hinaus können Sie den Berichtsmodus oder die Modi für jeden Berichtstyp separat steuern. Beispielsweise ist es möglich, anzugeben, dass eine reportType von einer von _CRT_WARN zu einer Ausgabedebug-Zeichenfolge wechselt, während sie _CRT_ASSERT mithilfe eines Debugnachrichtenfensters angezeigt wird und an stderr, wie zuvor dargestellt, gesendet wird.

Anforderungen

Routine Erforderlicher Header Optionaler Header
_CrtSetReportMode <crtdbg.h> <errno.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Bibliotheken: Nur Debugversionen der C-Laufzeitbibliotheken.

Weitere Informationen

Debugroutinen