_CrtSetReportHook
Installiert eine clientdefinierte Berichtsfunktion indem das Haken in den Prozess der C-Laufzeit - Debuggen von Berichten (nur Debugversion).
_CRT_REPORT_HOOK _CrtSetReportHook(
_CRT_REPORT_HOOK reportHook
);
Parameter
- reportHook
Neue clientdefinierte Berichtsfunktion, auf den ein Hook den Prozess der C-Laufzeit - Debuggen von Berichten.
Rückgabewert
Gibt die vorherige clientdefinierte Berichtsfunktion zurück.
Hinweise
_CrtSetReportHook ermöglicht es einer Anwendung, ihre eigene Berichtsfunktion in den berichtenden Prozess der C-Laufzeit-Debugbibliothek zu verwenden.Daher _CrtDbgReport aufgerufen wird, sobald ein Debugbericht generiert wird, wird die Berichtsfunktion der Anwendung zuerst aufgerufen.Diese Funktionalität ermöglicht es einer Anwendung, z. B. Filtern debugberichte Vorgänge ausgeführt werden, damit sie für bestimmte Typen von Zuordnungen konzentrieren oder einen Bericht zu den Zielen senden, die mit _CrtDbgReportnicht verfügbar sind, verwenden.Wenn _DEBUG nicht definiert wird, werden Aufrufe _CrtSetReportHook während des Präprozessorlaufs entfernt.
Für eine robustere Version von _CrtSetReportHookfinden Sie unter _CrtSetReportHook2.
Die _CrtSetReportHook-Funktion installiert die neue clientdefinierte Berichtsfunktion, die in reportHook angegeben wird, und gibt den vorherigen clientdefinierten Hook zurück.Im folgenden Beispiel wird veranschaulicht, wie ein clientdefinierter Berichts hook einen Prototyp entwickelt werden soll:
int YourReportHook( int reportType, char *message, int *returnValue );
Dabei reportType der Debugberichts_CRT_WARN, _CRT_ERRORTyp (oder _CRT_ASSERT) ist, ist message die vollständig assemblierte die im Bericht enthalten sein sollen, und für eine Benutzer returnValue handelt es sich um den Wert, der von der clientdefinierte Berichtsfunktion angegeben wird, die von _CrtDbgReportzurückgegeben werden soll.Eine vollständige Beschreibung der verfügbaren Berichts Typen finden Sie in der _CrtSetReportMode-Funktion.
Wenn die clientdefinierte Berichtsfunktion vollständig Debug- Nachricht so bearbeitet, dass keine weitere Berichterstellung erforderlich ist, sollte die Funktion TRUEzurückgeben.Wenn die Funktion FALSEzurückgibt, wird _CrtDbgReport aufgerufen, um den Debugbericht unter Verwendung der aktuellen Einstellungen für den Typ des Berichts, - Modus und - Datei zu generieren.Darüber hinaus indem Sie den _CrtDbgReport Rückgabewert in returnValueangibt, kann die Anwendung auch steuern, ob eine Unterbrechung auftritt.Eine vollständige Beschreibung der vorgesehenen der Debugbericht generiert und konfiguriert wird, finden Sie unter _CrtSetReportMode, _CrtSetReportFileund _CrtDbgReport.
Weitere Informationen über die Verwendung anderer Hook-fähiger Laufzeitfunktionen und das Schreiben von Hookfunktionen besitzen, clientdefinierte finden Sie unter Die Debuggen von Hookfunktionen Schreiben eigener.
Hinweis |
---|
Wenn die Anwendung mit /clr kompiliert und die Berichtsfunktion aufgerufen wird, nachdem die Anwendung main abgeschlossen ist, löst die CLR eine Ausnahme aus, wenn die Berichten funktionsaufrufe entweder CRT-Funktionen. |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_CrtSetReportHook |
<crtdbg.h> |
Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.
Bibliotheken
Debugversionen von nur C .
Beispiel
Ein Beispiel dafür, wie _CrtSetReportHookfinden Sie unter Berichtverwendet.
.NET Framework-Entsprechung
Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.