Не удается использовать функцию DirectX?

Я получаю ошибку LNK2019, когда пытаюсь использовать функцию D3DX11CompileFromFile в своем проекте C++. Ошибка гласит:

Ошибка 1, ошибка LNK2019: неразрешенный внешний символ _D3DX11CompileFromFileW@44, указанный в функции «void __cdecl InitPipeline (void)» (?InitPipeline@@YAXXZ) C:\Users\Username\Documents\Visual Studio 2013\Projects\Window0\Window0\Window0. Объект Окно0'

Я также не могу открыть d3dx11.lib и 10 даже после изменения адреса и настроек зависимости на то, что стоит. Я пытался перемещать файлы и изменять права пользователя, но я все еще не могу заставить сладкое работать.

Помощь приветствуется!


person faubusvonchafer    schedule 12.10.2014    source источник


Ответы (1)


Библиотека D3DX устарела в DirectX 11. Если она вам абсолютно не нужна, вместо нее следует использовать D3DCompileFromFile или скомпилируйте шейдеры в автономном режиме с помощью компилятора шейдеров fxc.exe.

Если вам нужна библиотека D3DX, вам потребуется установить DirectX SDK за июнь 2010 г. и обновить пути к Visual Studio. См. эту статью: Где находится DirectX SDK?

person megadan    schedule 12.10.2014
comment
Теперь появилась новая опция: вы можете использовать Microsoft.DXSDK.D3DX. Пакет NuGet вместо устаревшего SDK DirectX. Тем не менее, D3DX11 по-прежнему устарел, поэтому вам все равно следует обратить внимание на различные замены. - person Chuck Walbourn; 08.03.2021