Udostępnij za pośrednictwem


_CrtSetReportHook

Instaluje funkcję raportowania zdefiniowaną przez klienta, podłączając ją do procesu raportowania debugowania w czasie wykonywania języka C (tylko wersja debugowania).

Składnia

_CRT_REPORT_HOOK _CrtSetReportHook(
   _CRT_REPORT_HOOK reportHook
);

Parametry

reportHook
Nowa funkcja raportowania zdefiniowana przez klienta w celu przyłączenia się do procesu raportowania debugowania w czasie wykonywania języka C.

Wartość zwracana

Zwraca poprzednią funkcję raportowania zdefiniowaną przez klienta.

Uwagi

_CrtSetReportHook umożliwia aplikacji korzystanie z własnej funkcji raportowania w procesie raportowania biblioteki debugowania w czasie wykonywania języka C. W związku z tym za każdym razem, gdy _CrtDbgReport jest wywoływany w celu wygenerowania raportu debugowania, funkcja raportowania aplikacji jest wywoływana jako pierwsza. Ta funkcja umożliwia aplikacji wykonywanie operacji, takich jak filtrowanie raportów debugowania, dzięki czemu może skupić się na określonych typach alokacji lub wysłać raport do miejsc docelowych, które nie są dostępne za pomocą polecenia _CrtDbgReport. Gdy _DEBUG nie jest zdefiniowana, wywołania do _CrtSetReportHook są usuwane podczas przetwarzania wstępnego.

Aby uzyskać bardziej niezawodną wersję programu _CrtSetReportHook, zobacz _CrtSetReportHook2.

Funkcja _CrtSetReportHook instaluje nową funkcję raportowania zdefiniowaną przez klienta określoną w reportHook pliku i zwraca poprzedni punkt zaczepienia zdefiniowany przez klienta. W poniższym przykładzie pokazano, jak powinien być prototypowany punkt zaczepienia raportów zdefiniowany przez klienta:

int YourReportHook( int reportType, char *message, int *returnValue );

gdzie reportType jest typem raportu debugowania (_CRT_WARN, _CRT_ERROR, lub _CRT_ASSERT), message jest w pełni złożony komunikat debugowania użytkownika, który ma być zawarty w raporcie, i returnValue jest wartością określoną przez funkcję raportowania zdefiniowaną przez klienta, która powinna być zwracana przez _CrtDbgReport. Aby uzyskać pełny opis dostępnych typów raportów, zobacz _CrtSetReportMode funkcję .

Jeśli funkcja raportowania zdefiniowanego przez klienta całkowicie obsługuje komunikat debugowania, tak aby nie było wymagane dalsze raportowanie, funkcja powinna zwrócić wartość TRUE. Gdy funkcja zwraca FALSEwartość , _CrtDbgReport jest wywoływana w celu wygenerowania raportu debugowania przy użyciu bieżących ustawień dla typu raportu, trybu i pliku. Ponadto, określając wartość zwracaną _CrtDbgReport w returnValuepliku , aplikacja może również kontrolować, czy występuje przerwa w debugowaniu. Pełny opis sposobu konfigurowania i generowania raportu debugowania można znaleźć w temacie _CrtSetReportMode, _CrtSetReportFilei _CrtDbgReport.

Aby uzyskać więcej informacji na temat używania innych funkcji czasu wykonywania z obsługą haka i pisania własnych funkcji punktów zaczepienia zdefiniowanych przez klienta, zobacz Debugowanie zapisywania funkcji haka.

Uwaga

Jeśli aplikacja jest kompilowana z /clr i funkcja raportowania jest wywoływana po zakończeniu działania aplikacji głównej, clR zgłosi wyjątek, jeśli funkcja raportowania wywołuje jakiekolwiek funkcje CRT.

Wymagania

Procedura Wymagany nagłówek
_CrtSetReportHook <crtdbg.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Biblioteki

Debugowanie tylko wersji bibliotek czasu wykonywania języka C.

Zobacz też

Procedury debugowania
_CrtGetReportHook