_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 以使用报告类型、模式和文件的当前设置生成调试报告。 此外,通过在 returnValue 中指定 _CrtDbgReport 返回值,应用程序还可以控制是否发生调试中断。 有关如何配置和生成调试报告的完整说明,请参阅 _CrtSetReportMode_CrtSetReportFile_CrtDbgReport

若要详细了解如何使用其他具有挂钩功能的运行时函数和编写你自己的客户端定义挂钩函数,请参阅编写调试挂钩函数

注意

假设应用程序使用 /clr 编译,并且在应用程序退出 main 后调用报告函数,则在报告函数调用任何 CRT 函数时 CLR 将引发异常。

要求

例程 必需的标头
_CrtSetReportHook <crtdbg.h>

有关兼容性的详细信息,请参阅 兼容性

仅限 C 运行时库的调试版本。

另请参阅

调试例程
_CrtGetReportHook