Freigeben über


_RPT-, _RPTF-, _RPTW- und _RPTFW-Makros

Verfolgt den Status einer Anwendung durch Generieren eines Debugberichts Debugversion (nur). Beachten Sie, dass n die Anzahl der Argumente in args angibt und 0, 1, 2, 3, 4 oder 5. sein kann.

_RPTn( 
   reportType,
   format,
...[args]
); 
_RPTFn( 
   reportType,
   format,
   [args]
); 
_RPTWn( 
   reportType,
   format 
   [args]
); 
_RPTFWn( 
   reportType,
   format 
   [args]
);

Parameter

  • reportType
    Berichtstyp: _CRT_WARN, _CRT_ERROR oder _CRT_ASSERT.

  • format
    Formatsteuerzeichenfolge verwendet, um die Benutzermeldung zu erstellen.

  • args
    Ersatzargumente von format verwendet.

Hinweise

Diese Makros nehmen die Parameter reportType und format. Darüber hinaus nehmen sie auch für vier weitere Argumente auf, durch die Zahl, die dem Makronamen angefügt wird. Angenommen _RPT0 und _RPTF0 keine zusätzlichen Argumente, _RPT1 und _RPTF1 nehmen arg1, _RPT2 und _RPTF2 nehmen arg1 und arg2, z. B.

Die Makros _RPT und _RPTF sind für die printf-Funktion ähnlich, da sie verwendet werden können, um den Fortschritt einer Anwendung während des Debuggingsprozesses nachzuverfolgen. Dies sind jedoch Makros flexibler als printf, da sie nicht erforderlich ist, in #ifdef-Anweisungen eingeschlossen werden, um sie in einem Releasebuild einer Anwendung aufgerufen werden. Diese Flexibilität wird erreicht, indem das _DEBUG-Makro verwendet; die Makros _RPT und _RPTF sind nur verfügbar, wenn das Flag _DEBUG definiert wird. Ist _DEBUG nicht definiert wird, werden Aufrufe dieser Makros während des Präprozessorlaufs entfernt.

Die Makros _RPTW und _RPTFW sind Breitzeichenversionen dieser Makros. Sie sind z wprintf und nehmen Breitzeichen-Zeichenfolgen als Argumente.

Die Makros _RPT rufen die _CrtDbgReport-Funktion auf, um ein Debugbericht mit einer Benutzermeldung zu generieren. Die Makros _RPTW rufen die Funktion _CrtDbgReportW auf, um den Bericht mit Breitzeichen zu generieren. Die Makros _RPTF und _RPTFW erstellen ein Debugbericht mit der Quelldatei sowie die Zeilennummer, in der das Berichtsmakro aufgerufen wurde, sowie die Benutzermeldung. Die Benutzermeldung wird erstellt, indem die Argumente arg[n] format in die Zeichenfolge, mit der gleichen Regeln ersetzt, die durch die printf-Funktion definiert werden.

_CrtDbgReport oder _CrtDbgReportW generiert den Debugbericht und bestimmt die Ziele auf Grundlage der aktuellen Berichtsmodi und die Regelsatzdatei, die für reportType definiert werden. Die Funktionen _CrtSetReportMode und _CrtSetReportFile werden verwendet, um die Ziele für jeden Berichtstyp zu definieren.

Wenn ein _RPT-Makro aufgerufen wird und weder _CrtSetReportMode noch _CrtSetReportFile aufgerufen wurde, werden Meldungen wie folgt angezeigt.

Berichtstyp

Ausgabeziel

_CRT_WARN

Warnungstext wird nicht angezeigt.

_CRT_ERROR

Ein Popupfenster. Gleiche, als ob _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); angegeben wurde.

_CRT_ASSERT

Dieselbe Bedeutung wie _CRT_ERROR.

Wenn das Ziel ein debuggensmeldungsfenster wird und der Benutzer die Schaltfläche auswählt Wiederholen, gibt _CrtDbgReport_CrtDbgReportW oder 1 zurück und führt diese Makros, den Debugger starten, vorausgesetzt, dass ein Just-In-Time (JIT)- - Debuggen aktiviert ist. Weitere Informationen zur Verwendung dieser Makros als Debuggingsfehlerbehandlungsmechanismus, finden Sie unter Verwenden von Makros für Überprüfungen und Berichterstellung.

Zwei andere Makros vorhanden sind, die ein Debugbericht generieren. _ASSERT Das Makro generiert einen Bericht, jedoch nur, wenn sein Ausdrucksargument zu FALSE ergibt. _ASSERTE entspricht genau wie _ASSERT, aber enthält der fehlgeschlagenen Ausdruck im generierten Bericht.

Anforderungen

Makro

Erforderlicher Header

Makros _RPT

<crtdbg.h>

Makros _RPTF

<crtdbg.h>

Makros _RPTW

<crtdbg.h>

Makros _RPTFW

<crtdbg.h>

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

Bibliotheken

Nur Debugversionen von C-Laufzeitbibliotheken.

Obwohl diese Makros sind und erhalten werden, indem sie Crtdbg.h enthalten, muss die Anwendung mit einer der Debugbibliotheken verknüpfen, da diese Makros andere Laufzeitfunktionen aufrufen.

Beispiel

Siehe das Beispiel im Thema _ASSERT.

.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