Если бы я использовал некоторые типы из набора Windows 10, d3d11.h, d3d11.lib (статическая библиотека) и скомпилировал в Toolset v90 (Visual studio 2008). Что должно произойти, если файл .exe будет запущен под Windows Vista, который не имеет никаких признаков d3d11.h, что будет происходить? Это выбросит неразрешенные внешние исключения?
Если вы скомпилируете проект с использованием разделяемых / динамических библиотек, которые, как ожидается, будут распространяться вместе с операционной системой, а затем попытаетесь запустить его в другой операционной системе, он, скорее всего, завершится сбоем или не запустится вообще из-за отсутствия / несовпадающие разделяемые библиотеки / библиотеки
Также обратите внимание, что неразрешенная внешняя ошибка времени ссылки, а не исключение.
d3d11.lib
библиотека импорта d3d11.h
не имеет значения во время выполнения (заголовки используются только компилятором), а также «неразрешенные внешние компоненты» (которые являются ошибками компоновщика). Если DirectX 11 не установлен, приложение не сможет запустить причину отсутствия зависимости DLL. DirectX11 доступен для Windows Vista как часть обновления платформы, см.
Как установить DirectX 11 в Windows Vista поэтому исполняемый файл должен быть в состоянии нормально работать.