до сих пор я успешно переходил с устаревших библиотек D3DX на новые, но с функцией D3DX11CompileFromFile я должен использовать новый D3DCompileFromFile. MSDN сообщает, что файл заголовка — D3DCompiler.h, а файл lib — D3DCompiler.lib. Интеллисенс забирает два, один из
C: \ Program Files (x86) \ Microsoft DirectX SDK (июнь 2010 г.) \ Lib \ x64
а другой из
C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Lib \ winv6.3 \ um \ x64
Если кто-нибудь знает, почему это происходит, я буду признателен за помощь. Я также попытался переключить заказы нескольких из них. Благодарю.
В идеале вы должны полностью удалить пути DirectX SDK (июнь 2010 г.) и просто использовать заголовок D3DCompile в Windows 8.1 SDK.
Если вам нужно использовать устаревший DirectX SDK (июнь 2010 г.), вы должны включить & пути к библиотекам после Windows 8.1 SDK. Это в основном работает, но есть сложности в отношении XAudio 2.7 более низкого уровня. Увидеть Zombie DirectX SDK для всех деталей.
Устаревшая копия DirectX SDK d3dcompiler.h
не имеет FromFile
аромат, который был добавлен для версии Windows 8.x SDK. В Windows 8.1 или Windows 10, D3DCompiler_47.DLL
является частью ОС, но если вы хотите работать в Windows 7, вам нужно развернуть DLL вместе с приложением, которое вы можете просто скопировать из $(WindowsSdkDir)redist\d3d\<arch>\D3DCompile*.DLL
, Увидеть HLSL, FXC и D3DCompile.
Других решений пока нет …