使用无 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

请参见

任务

如何:使用本机运行时检查