Я понимаю, что попытка связать объекты/библиотеки, которые были скомпилированы с различными версиями набора инструментов Visual C++, приведет к сбою, как описано здесь error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj.Несовместимость связей между различными объектами Visual C++ и DirectX SDK
Однако при работе с DirectX SDK 2010, похоже, нет проблем с привязкой к этим старым библиотекам (например, d3d11.lib и т. Д.), Даже если мы используем VC++ 12/13/15.
Почему мы можем ссылаться на эти старые библиотеки DirectX, но не на те, которые были созданы более ранними версиями VC++. Кроме того, если не VC++, что было использовано для компиляции этих библиотек DirectX в первую очередь?
Обратите внимание, что с VC++ 12/13/15 Вы не должны использовать наследие DirectX SDK для '' d3d11.lib '' и тому подобное. Вы должны использовать его - если вообще - для устаревшей библиотеки '' d3dx11.lib'' или нижнего уровня '' xaudio2.lib'', которая работает в Windows 7. См. [MSDN] (https: // msdn.microsoft.com/en-us/library/windows/desktop/ee663275.aspx) и [это сообщение в блоге] (http://blogs.msdn.com/b/chuckw/archive/2013/07/01/where -is-the-directx-sdk-2013-edition.aspx) –