_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, приложение может контролировать, происходит ли прерывание при отладке. Полное описание настройки и создания отчета об отладке см. в разделах _CrtSetReportMode, _CrtSetReportFile и _CrtDbgReport.
Дополнительные сведения о других способных на обработку функциях среды выполнения и написании собственных определяемых клиентом функциях-ловушках см. в разделе Написание функций отладочных ловушек.
Примечание
Если приложение компилировано с /clr и функциональность отчетов вызывается после того, как приложение покидает main, среда CLR вызывает исключение, если функции отчета вызывают какие-либо функции CRT.
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_CrtSetReportHook |
<crtdbg.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Библиотеки
Только отладочные версии Библиотеки времени выполнения языка C.
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.