Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.