Freigeben über


detect_mismatch pragma

Platziert einen Datensatz in einem Objekt. Der Linker überprüft diese Datensätze auf potenzielle Konflikte.

Syntax

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

Hinweise

Wenn Sie das Projekt verknüpfen, löst der Linker einen LNK2038 Fehler aus, wenn das Projekt zwei Objekte enthält, die denselben Namen haben, aber jeder einen anderen Wert hat. Verwenden Sie dies pragma , um zu verhindern, dass inkonsistente Objektdateien verknüpft werden.

Sowohl Name als auch Wert sind Zeichenfolgenliterale und befolgen die Regeln für Zeichenfolgenliterale in Bezug auf Escapezeichen und Verkettung. Bei ihnen wird die Groß-/Kleinschreibung beachtet und darf kein Komma, Gleichheitszeichen, Anführungszeichen oder das NULL-Zeichen enthalten.

Beispiel

Dieses Beispiel erstellt zwei Dateien, die unterschiedliche Versionsnummern für die gleiche Versionsbezeichnung aufweisen.

// 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")

Wenn Sie beide Dateien mithilfe der Befehlszeile cl pragma_directive_detect_mismatch_a.cpp pragma_directive_detect_mismatch_b.cppkompilieren, erhalten Sie den Fehler LNK2038.

Siehe auch

Pragma-Direktiven und die __pragma und _Pragma Schlüsselwort (keyword)