detect_mismatch
pragma
オブジェクト内にレコードを配置します。 リンカーは、不一致の可能性を探してこれらのレコードをチェックします。
構文
#pragma detect_mismatch(
"name",
"value")
解説
プロジェクトのリンク時に、同じ name を持つが value がそれぞれ異なる 2 つのオブジェクトがプロジェクトに含まれている場合、リンカーは LNK2038 エラーをスローします。 整合性のないオブジェクト ファイルのリンクを防止するには、この pragma を使用します。
name と value の両方が文字列リテラルで、エスケープ文字と連結に関して文字列リテラルの規則に準拠します。 これらは大文字と小文字を区別し、コンマ、等号、引用符、または 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 が表示されます。