Freigeben über


_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, , _CrtSetReportFileund _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

Siehe auch

Debugroutinen
_CrtGetReportHook