报表挂钩函数
每次 _CrtDbgReport 生成调试报告时都会调用报告挂钩函数(使用 _CrtSetReportHook 安装)。可以使用报告挂钩函数以及其他项筛选报告以集中于特定类型的分配。报告挂钩函数应具有如下原型:
int YourReportHook(int nRptType, char *szMsg, int *retVal);
传递给 _CrtSetReportHook 的指针为 _CRT_REPORT_HOOK 类型,如 CRTDBG.H 中所定义:
typedef int (__cdecl *_CRT_REPORT_HOOK)(int, char *, int *);
当运行库调用您的挂钩函数时,nRptType 参数包含报告类别(_CRT_WARN、_CRT_ERROR 或 _CRT_ASSERT),szMsg 包含指向完全汇编的报告消息字符串的指针,而 retVal 指定 _CrtDbgReport 应在生成报告以后继续正常执行还是启动调试器。(retVal 值为零继续执行,值为 1 启动调试器。)
如果挂钩完全处理了所讨论的消息,因而不需要进一步的报告,那么应返回 TRUE。如果返回 FALSE,_CrtDbgReport 将以正常方式报告消息。