detect_mismatch pragma

オブジェクト内にレコードを配置します。 リンカーは、不一致の可能性を探してこれらのレコードをチェックします。

構文

#pragma detect_mismatch( "name" , "value" )

解説

プロジェクトのリンク時に、同じ name を持つが value がそれぞれ異なる 2 つのオブジェクトがプロジェクトに含まれている場合、リンカーは LNK2038 エラーをスローします。 整合性のないオブジェクト ファイルのリンクを防止するには、この pragma を使用します。

namevalue の両方が文字列リテラルで、エスケープ文字と連結に関して文字列リテラルの規則に準拠します。 これらは大文字と小文字を区別し、コンマ、等号、引用符、または null 文字を含めることはできません。

この例では、同じバージョン ラベルの異なるバージョン番号を持つ 2 つのファイルを作成します。

// pragma_directive_detect_mismatch_a.cpp
#pragma detect_mismatch("myLib_version", "9")
int main ()
{
   return 0;
}

// pragma_directive_detect_mismatch_b.cpp
#pragma detect_mismatch("myLib_version", "1")

コマンド ライン cl pragma_directive_detect_mismatch_a.cpp pragma_directive_detect_mismatch_b.cpp を使用してこれらの両方のファイルをコンパイルすると、エラー LNK2038 が表示されます。

関連項目

pragma ディレクティブと __pragma および _Pragma キーワード