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」を参照してください。

参照

処理手順

方法 : ネイティブ ランタイム チェックを使用する