不使用 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。