detect_mismatch
Задает запись в объекте.Компоновщик проверяет эти записи для потенциальных рассогласований.
#pragma detect_mismatch( "name", "value"))
Заметки
При связывании проекта компоновщик выдает a LNK2038 ошибка, если проект содержит 2 объектов, имеющих одинаковые name но каждое из которых имеет разные value.Используйте данную прагму, чтобы предотвратить несогласованные объектные файлы из связывания.
И имя и значение строковые литералы и подчиняются правилам для строковых литералов по отношению к объединению и escape-символ.Они чувствительны к регистру и не могут содержать запятые, знак равенства, кавычки или 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.