Windows8(Windows7も含む)DirectXを使おうとしてちょっとあれれってなったので記事を書きます。
DirectXで開発するためにはDirectX SDKが別途必要です。当然ランタイムだけではダメです。
しかし、Windows7以降はWindows SDKと統合されているので、Visual Studio 2012以降をインストールさえしていればDirectX SDKは必要ありません。
ただし、それはDirectX 10以降のバージョンを使う場合です。
ネットにあふれている情報はXPでも使えるDirectX 9までの情報が多いです。
DirectX 9を使うには別途DirectX SDKが必要です。
http://www.microsoft.com/en-us/download/details.aspx?id=6812
いままでDirect2Dの機能は何度か使っていましたが、
上記のことはあるDirectX 9のAPIを使ったサンプルコードをビルドしようとしたときに、d3dx9.hが見つからないとエラーがでたことで判明しました。
あれ…d3dx.hは別に文句言われないのに…と思い調べると、上記の結果となりました。
まぁそれ以前に下記のようにDXSDK_DIRマクロが定義されていないからどういうこっちゃ…と思ってました(※スクリーンショットはDirectX SDKインストール後です)。
そんなわけで、DirectX SDK(ver9以前対応)をインストールしたところ、
エラーじゃん(;´・ω・)
というわけでグーグル大先生に尋ねたら、
おっと、VC++の再頒布可能パッケージ(2010)を消さないとダメなんだってさ。
えーめんどくさ。
http://blogs.msdn.com/b/windows_multimedia_jp/archive/2013/09/05/kb-directx-sdk.aspx
そんなわけで2つは消します。
DirectX SDKインストール後、その2つはまた勝手にインストールされるのでご安心を。
そんなわけでDirectX 9のAPIを使ったプログラムは動きました。