_CrtSetReportHook
Installiert eine clientdefinierte Berichtsfunktion, indem sie mit dem Debug-Berichterstellungsprozess der C-Laufzeit verknüpft wird (nur Debugversion).
Syntax
_CRT_REPORT_HOOK _CrtSetReportHook(
_CRT_REPORT_HOOK reportHook
);
Parameter
reportHook
Die neue clientdefinierte Berichtsfunktion, die mit dem Debug-Berichterstellungsprozess der C-Laufzeit verknüpft werden soll.
Rückgabewert
Gibt die vorherige clientdefinierte Berichtsfunktion zurück.
Hinweise
_CrtSetReportHook
ermöglicht es einer Anwendung, eine eigene Berichtsfunktion im Debugbibliothek-Berichterstellungsprozess der C-Laufzeit zu verwenden. Daher wird bei jedem _CrtDbgReport
Aufruf zum Generieren eines Debugberichts zuerst die Berichterstellungsfunktion der Anwendung aufgerufen. Diese Funktionalität ermöglicht es einer Anwendung, Vorgänge wie das Filtern von Debugberichten auszuführen, sodass sie sich auf bestimmte Zuordnungstypen konzentrieren oder einen Bericht an nicht verfügbare Ziele senden kann, indem _CrtDbgReport
verwendet wird. Wenn _DEBUG
nicht definiert ist, werden Aufrufe von _CrtSetReportHook
während der Vorverarbeitung entfernt.
Eine stabilere Version von _CrtSetReportHook
, siehe _CrtSetReportHook2
.
Die _CrtSetReportHook
-Funktion installiert die neue clientdefinierte Berichtsfunktion, die in reportHook
angegeben wird, und gibt die vorherige clientdefinierte Hookfunktion zurück. Das folgende Beispiel zeigt, wie ein Prototyp einer clientdefinierten Hookfunktion für Berichte entwickelt werden soll:
int YourReportHook( int reportType, char *message, int *returnValue );
wobei Folgendes gilt: reportType
ist der Debugberichtstyp (_CRT_WARN
, _CRT_ERROR
oder _CRT_ASSERT
), message
ist die vollständig assemblierte Debugbenutzermeldung, die im Bericht enthalten sein sollte, und returnValue
ist der von der clientdefinierten Berichtsfunktion angegebene Wert, der von _CrtDbgReport
zurückgegeben werden soll. Eine vollständige Beschreibung der verfügbaren Berichtstypen finden Sie in der _CrtSetReportMode
Funktion.
Wenn die clientdefinierte Berichtsfunktion die Debugmeldung vollständig bearbeitet, sodass kein weiterer Bericht erforderlich ist, sollte die Funktion TRUE
zurückgeben. Wenn die Funktion FALSE
zurückgibt, wird _CrtDbgReport
aufgerufen, um den Debugbericht mithilfe der aktuellen Einstellungen für den Berichtstyp, den Berichtsmodus und die Berichtsdatei zu generieren. Wenn darüber hinaus der _CrtDbgReport
-Rückgabewert in returnValue
angegeben wird, kann die Anwendung auch steuern, ob ein Debugabbruch auftritt. Eine vollständige Beschreibung der Konfiguration und Erstellung des Debugberichts finden Sie unter _CrtSetReportMode
, , _CrtSetReportFile
und _CrtDbgReport
.
Weitere Informationen zur Verwendung anderer Hook-fähiger Laufzeitfunktionen und zum Schreiben eigener clientdefinierter Hookfunktionen finden Sie im Schreiben von Debug-Hook-Funktionen.
Hinweis
Wenn Ihre Anwendung mit /clr kompiliert wird und die Berichtsfunktion aufgerufen wird, nachdem die Anwendung den Hauptteil beendet hat, löst die CLR eine Ausnahme aus, wenn die Berichtsfunktion CRT-Funktionen aufruft.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_CrtSetReportHook |
<crtdbg.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Libraries
Nur Debugversionen von C-Laufzeitbibliotheken