使用无 C 运行库的运行时检查
如果链接程序而不链接 C 运行库(使用 /NODEFAULTLIB)并希望使用运行时检查,则必须链接 RunTmChk.lib。
_RTC_Initialize 为运行时检查初始化程序。如果未链接 C 运行库,必须在调用 _RTC_Initialize 之前检查是否用运行时错误检查编译了程序:
#ifdef __MSVC_RUNTIME_CHECKS
_RTC_Initialize();
#endif
如果不链接 C 运行库,还必须定义一个称为 _CRT_RTC_INITW 的函数。_CRT_RTC_INITW 将用户定义的函数安装为默认的错误报告函数,如下所示:
// C version:
_RTC_error_fnW __cdecl _CRT_RTC_INITW(
void *res0, void **res1, int res2, int res3, int res4)
{
// set the error handler.
return &MyErrorFunc;
}
// C++ version:
extern "C" _RTC_error_fnW __cdecl _CRT_RTC_INITW(
void *res0, void **res1, int res2, int res3, int res4)
{
// set the error handler:
return &MyErrorFunc;
}
安装了默认错误报告函数后,可以使用 _RTC_SetErrorFuncW 安装附加错误报告函数。有关更多信息,请参见 _RTC_SetErrorFuncW。