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


_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Процедуры отладки

_CrtGetReportHook