vs2012 совместимость с наборами инструментов
В моем VS2012 доступно 4 набора инструментов: v90, v100, v110 и v110_xp. Я провел простой тест с двумя проектами testlib (статическая библиотека) и testexe (консольное приложение). Интерфейс был только одна функция с подписьюvoid test()
, Результаты, достижения:
Однако мне показалось несколько странным, что v100 и v110 будут соединяться, поэтому я попытался немного усложнить сценарий. Теперь мой метод выглядит так:std::map test(const std::string& arg)
, Как и ожидалось, testlib (v100) и testexe (v110) не связываются (mismatch detected for '_MSC_VER'
).
Но все же testlib (v110) и testexe (v110_xp) связывают друг друга, и полученный exe работает на Windows XP. Это случайно или это поддерживаемый сценарий? Если это случайно, то пример кода, который использует только функции, доступные в v110_xp и нарушает эту совместимость, будет приветствоваться. Мне интересно, стоит ли мне развертывать две версии моей библиотеки на моих клиентах, или подойдет только та, которая скомпилирована с v110.