Freigeben über


Hookfunktionen für Berichte

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

Thema ist nicht vorhanden Thema ist nicht vorhanden Thema ist nicht vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

Pro, Premium und Ultimate

Thema ist nicht vorhanden Thema ist nicht vorhanden Thema ist nicht vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

Eine mithilfe von _CrtSetReportHook installierte Hookfunktion für Berichte wird jedes Mal aufgerufen, wenn durch _CrtDbgReport ein Debugbericht generiert wird. Sie können mit dieser Funktion u. a. Berichte filtern, um bestimmte Reservierungstypen herauszustellen. Der Prototyp einer Hookfunktion für Berichte sollte etwa wie folgt aussehen:

int YourReportHook(int nRptType, char *szMsg, int *retVal);

Der an _CrtSetReportHook übergebene Zeiger ist vom Typ _CRT_REPORT_HOOK, wie in CRTDBG.H definiert:

typedef int (__cdecl *_CRT_REPORT_HOOK)(int, char *, int *);

Wenn die Hookfunktion von der Laufzeitbibliothek aufgerufen wird, enthält das nRptType-Argument die Berichtskategorie (_CRT_WARN, _CRT_ERROR oder _CRT_ASSERT); szMsg enthält einen Zeiger auf eine vollständig assemblierte Berichtsmeldungszeichenfolge, und retVal gibt an, ob _CrtDbgReport nach der Berichtgenerierung die normale Ausführung fortsetzen oder den Debugger starten soll. (Bei einem retVal-Wert von 0 (null) wird die Ausführung fortgesetzt und bei einem Wert von 1 wird der Debugger gestartet.)

Wenn die betreffende Meldung vollständig vom Hook behandelt wird, sodass kein weiterer Bericht erforderlich ist, muss er TRUE zurückgeben. Wenn FALSE zurückgegeben wird, gibt _CrtDbgReport die Meldung wie üblich aus.

Siehe auch

Aufgaben

crt_dbg2-Beispiel: C-Laufzeit – Debuggen von Hookfunktionen

Weitere Ressourcen

Schreiben von Hookfunktionen zum Debuggen