_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.