0

Visual Studio 2012 に移行するまで、完全に機能していた Visual C++ プロジェクトがあります。

私は D3DX9 を使用しているため、d3dx9.h を #include しています。ただし、 d3dx9.hを含むファイルを含むすべての場所で致命的なエラー C1083 が発生します。

このページで読んだように、DirectX SDK は Windows SDK の一部になりました。これは、ファイルに移動すると、d3d9.h などのエラーが発生しないという事実によってサポートされているようです。DirectX SDK フォルダーではなく、「Windows Kits」というフォルダー内のフォルダーに送信されます。

そこで、インクルード ディレクトリの設定を次のように変更します。

$(IncludePath);C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include

また

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(IncludePath)

それでも、C1083 エラーが引き続き発生するため、コンパイラは DirectX SDK フォルダーを無視することを主張します。

他に何を試すべきかわかりません。ファイルはそこにあり、プロジェクトは VS2010 で正常にビルドされますが、VS2012 コンパイラによるこの主張が私を前進させません。

また、以前はビルド ウィンドウでコンパイラに送信された正確なコマンド ラインを確認できましたが、現在は確認できないため、Visual Studio が正しいコマンド ラインをコンパイラに送信していないかどうかを診断する方法がわかりません。 、またはコンパイラが単に無視している場合。

この問題を解決するにはどうすればよいですか?

注: ファイルは存在し、 #include を変更するとプロジェクトは機能します

#include "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\d3dx9.h"

これは明らかに最適ではありません...

4

1 に答える 1

0

それでも問題が解決しない場合は、解決策を見つけました。組み込みの「キット」を使用している場合は、関連するヘッダーに次のようなディレクティブが必要です。

#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "DXGI.lib")

使用している機能によっては、他にも必要になる場合があります。

于 2013-11-18T18:38:52.730 に答える