2017-01-13 234 views
0

私が始め始める前に、これは非常によくある質問で、私はここに投稿する前に回答を探しました。残念ながら、私は運がなかった。ソースファイルを開くことができませんd3dx9.h

#include <d3dx9.h> 

今誤差が現れる:私のコードで

は、私はこのようなファイルを含めることができない、オープンソース、私はそれをへのパスを入力しなかった私のインクルードディレクトリに

ファイルd3dx9.h (私がファイルを手作業で見ると、そこに見ることができます)。

パスは次のとおりです。C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include

私はまた、ライブラリディレクトリを設定します。私は、64ビットシステムを実行していますので、C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64

のx64。

誰かが提案を投稿するには時間がかかることができれば、私は非常にそれをいただければと思います。

ご挨拶。

+0

ファイル 'd3dx9.h'が実際にインクルードパスにあることを確認しましたか? – roalz

+0

私は賛成し、私が見る限りです。それは本当にそこにあります。 – unknowncoder

+0

使用しているVisual Studioのバージョンは? DirectX SDKのインクルードパスがC++プロジェクトで正しく選択されていることを確認しましたか(プロジェクトプロパティを参照) – roalz

答えて

2

Visual Studio 2015には、従来のDirectX SDKのヘッダーよりも新しいというWindows 8.1 SDKが含まれています。 Windows 8.1 SDKにはすべてのDirectXヘッダーとライブラリが含まれていますが、には現在廃止されているD3DX(D3DX9、D3DX10、D3DX11)ユーティリティライブラリが含まれていないため、には存在しません。

D3DX9、D3DX10、およびD3DX11は、従来のDirectX SDKでのみ使用できます。あなたは、VS 2012以降で

<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> 

:x64のネイティブのための

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

と、この:Win32の(x86の)設定のため、次のようにVS 2010で、あなたが使うことになっていたVC++ディレクトリの設定でしたている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> 

MSDNWhere is the DirectX SDK (2015 Edition)?The Zombie DirectX SDK、およびNot So Direct Setupを参照してください。

といっても、おそらく、従来のDirect3D 9を使用するべきではないでしょう。 DirectX 11をD3DXの現代的な代替品の1つと共に使用することは、より良い、よりクリーンなオプションであり、従来のDirectX SDKを必要としません。 Living without D3DXを参照してください。

あなたは特別のDirect3D 9でのWindows XP SP3上でプログラムを実行するためにターゲットにしている場合は、Windows 7.1A SDK、ないのWindows 8.1 SDKを使用していますv140_xpプラットフォームツールセットを使用することがあります。したがって、あなたは古い学校のインクルード注文と一緒に行きます。詳細は、this postを参照してください。

+0

うわー、これは非常に便利で、ありがとう!正解 :)。 – unknowncoder

関連する問題