_CrtSetReportMode
Gibt das Ziel oder die Ziele für einen bestimmten Berichtstyp an, der von _CrtDbgReport
makros generiert wird, und alle Makros, die aufgerufen _CrtDbgReport
werden,_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 reportMode
wird, _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_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 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.