Не удается открыть исходный файл d3dx9.h

Прежде чем я начну, я знаю, что это довольно распространенный вопрос, я действительно искал ответы, прежде чем писать здесь К сожалению, мне не повезло.

В моем коде я включаю файл следующим образом:

#include <d3dx9.h>

Теперь появляется ошибка: не удается открыть исходный файл d3dx9.h

В моих каталогах включений я действительно указал путь к нему (если я посмотрю его вручную в своих файлах, я смогу увидеть его там).

Путь это: C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include

Я также установил каталог библиотеки: C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64

x64, так как я использую 64-битную систему.

Я был бы очень признателен, если бы кто-то нашел время, чтобы опубликовать предложение.

Привет.

0

Решение

Visual Studio 2015 включает Windows 8.1 SDK, который является новее чем заголовки в устаревшем DirectX SDK. Windows 8.1 SDK включает в себя все заголовки и библиотеки DirectX, но не содержит устаревшую служебную библиотеку D3DX (D3DX9, D3DX10, D3DX11), поэтому она «отсутствует».

D3DX9, D3DX10 и D3DX11 доступны только в устаревшем DirectX SDK. В VS 2010 параметры каталога VC ++, которые вы должны были использовать, были следующими для параметров Win32 (x86):

<ExecutablePath>$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
<LibraryPath>$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>

а это для x64 native:

<ExecutablePath>$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
<LibraryPath>$(DXSDK_DIR)Lib\x64;$(LibraryPath)</LibraryPath>

С VS 2012 или более поздней версии, вы должны задний ход их, так как большинство заголовков в Windows 8 SDK заменяют старый DirectX SDK:

<ExecutablePath>$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x86</ExecutablePath>
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include</IncludePath>
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib\x86</LibraryPath>

а также

<ExecutablePath>$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86</ExecutablePath>
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include</IncludePath>
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib\x64;</LibraryPath>

Увидеть MSDN, Где находится DirectX SDK (издание 2015 г.)?, Zombie DirectX SDK, а также Не такая прямая настройка.

Учитывая все вышесказанное, вам, вероятно, все равно не следует использовать устаревшую версию Direct3D 9. Использование DirectX 11 с одной из современных замен для D3DX — лучший, более чистый вариант и не требует устаревшего DirectX SDK. Увидеть Жизнь без D3DX.

Если вы нацелены на запуск программы в Windows XP SP3 с Direct3D 9, вы будете использовать v140_xp Набор инструментов платформы, который использует Windows 7.1A SDK, не Windows 8.1 SDK. Таким образом, вы идете с старой школы включить порядок. Увидеть эта почта для деталей.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]