Share via


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

請參閱

工作

HOW TO:使用原生執行階段檢查