Поскольку проект компилируется на одном компьютере, а не на другом, вы, очевидно, ищете некоторую разницу между ними.
Одна из возможностей состоит в том, что на обеих системах установлены разные версии DirectX SDK. Возможно, не очень вероятная возможность, но стоит проверить, чтобы исключить ее из рассмотрения.
Другая возможность состоит в том, что на обеих системах установлены разные версии какого-либо другого SDK.
Третья возможность состоит в том, что две копии Visual Studio настроены на поиск включаемых папок различных SDK в разных порядках. Это может вызвать проблемы, когда определение для некоторого типа или макроса происходит из одного заголовочного файла в одной системе и совершенно другого заголовочного файла в другой системе.
Перейти в Инструменты | Варианты | Проекты и решения | VC ++ Каталоги в системе, где компиляции успешны. Установите для параметра «Показать каталоги» значение «Включить файлы», а затем запишите список отображаемых папок, включая порядок этого списка.
Теперь сделайте то же самое во второй системе, где происходит сбой компиляции, и сравните два списка. Два списка могут не совпадать. В одной системе может быть установлен SDK, а в другой - нет; две системы могут иметь один и тот же SDK, установленный в разных местах. Тем не менее, намерение списков должно быть одинаковым.
Если запись DirectX SDK в списке исправных систем появляется перед записью Windows SDK, то две записи в списке неисправных систем также должны отображаться в одинаковом порядке. Вы должны будете прислушиваться к своим суждениям о записях, которые появляются в одном списке, но не в другом, или тщательно экспериментировать (но помните, что изменение этого списка может повлиять на любую сборку, выполняемую этой копией Visual Studio).