Поделиться через


_CrtSetReportHook

Устанавливает определяемую клиентом функцию отчетов путем ее прикрепления к процессу создания отчетов среды выполнения языка C (только отладочная версия).

Синтаксис

_CRT_REPORT_HOOK _CrtSetReportHook(
   _CRT_REPORT_HOOK reportHook
);

Параметры

reportHook
Новая определяемая клиентом функция отчетов, которую необходимо прикрепить к процессу создания отчетов среды выполнения языка C.

Возвращаемое значение

Возвращает предыдущую определяемую клиентом функцию отчетов.

Замечания

_CrtSetReportHook позволяет приложению использовать собственную функцию отчетов в процессе создания отчетов отладочной библиотеки времени выполнения языка C. В результате при _CrtDbgReport каждом вызове для создания отчета отладки функция отчетов приложения вызывается первым. Эта функциональность позволяет приложению выполнять такие операции, как фильтрация отчетов отладки, чтобы сосредоточиться на выделениях памяти конкретного типа или отправлять отчет в пункты назначения, которые недоступны при использовании _CrtDbgReport. Если _DEBUG это не определено, вызовы _CrtSetReportHook удаляются во время предварительной обработки.

Более надежная версия _CrtSetReportHookсм. в разделе _CrtSetReportHook2.

Функция _CrtSetReportHook устанавливает новую определяемую клиентом функцию отчетов, указанную в параметре reportHook, и возвращает предыдущую определенную клиентом функцию-обработчик. В следующем примере показано, как должен быть объявлен прототип определяемого клиентом обработчика отчетов:

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

где reportType — тип отчета отладки (_CRT_WARN, _CRT_ERROR или _CRT_ASSERT), message — полностью собранное пользовательское отладочное сообщение, которое будет содержаться в отчете, и returnValue — значение, указанное определяемой клиентом функцией отчетов, которое должно возвращаться функцией _CrtDbgReport. Полное описание доступных типов отчетов см. в _CrtSetReportMode функции.

Если определяемая клиентом функция отчетов полностью обрабатывает сообщение отладки и дальнейшая выдача отчета не требуется, функция должна возвращать значение TRUE. Если функция возвращает значение FALSE, для создания отчета отладки с использованием текущих параметров типа, режима и файла отчета вызывается функция _CrtDbgReport. Кроме того, указав возвращаемое значение функции _CrtDbgReport в параметре returnValue, приложение может контролировать, происходит ли прерывание при отладке. Полное описание настройки и создания отчета отладки см. в разделе , _CrtSetReportFileа _CrtDbgReportтакже _CrtSetReportMode.

Дополнительные сведения об использовании других функций времени выполнения с поддержкой перехватчика и написании собственных клиентских функций перехватчика см. в статье "Запись функции перехватчика отладки".

Примечание.

Если приложение компилируется с помощью /clr и функция создания отчетов вызывается после выхода приложения из основного кода, среда CLR выдает исключение, если функция отчетов вызывает какие-либо функции CRT.

Требования

Маршрут Обязательный заголовок
_CrtSetReportHook <crtdbg.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Библиотеки

Только отладочные версии библиотек времени выполнения языка C.

См. также

Отладка подпрограмм
_CrtGetReportHook