_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 运行时库的调试版本。