DirectX SDKとWindows SDK
DirectX11の開発を、
この書籍を参考にはじめてみた。
DirectX9など、過去バージョンの開発もしたいなら
VisualStudio2010以降(恐らく)+DirectX SDK
の組み合わせになるが、
DirectX11のみの開発なら
VisualStudio2012or2013+Windows SDK
でいいとのこと。
VisualStudio2012からDirectX SDKはWindows SDKに統合されたらしい。
そしてWindows SDKはVisualStudioについてくる。
すなわちVisualStudio2013が入ってる私のパソコンなら追加のインストールも無しで即開発に入れるのだ。やったね。
じゃあ書籍のサンプルをとりあえず動かしてみるかな・・・
大量のエラー。
ヘッダファイルが見つからない(二個)ことによる、定義されてないよエラーが噴出しているようだ。
ヘッダファイルが見つからない?書籍のとおりにディレクトリ設定でパスも指定したし、リンカーも指定したぞ?そもそも#pragmaとやらである程度自動でやってくれるんじゃないのか?
いろんなサイトまわっていろんなパスを試した。が!駄目ッ・・・!
ん?パス設定が間違ってる方向で調べてたけどそもそもヘッダファイルはあるのか?いやでもWindows SDKだけでいいって書いてあったし、流石に無いこたないでしょ。
問題のヘッダファイルたち
d3dx11.h
dxerr.h
をPC内検索。
無かった。
えぇ・・・。
ここで同じ事を進めていた仲間がどうやら上手くいったらしいので詳しく聞いてみた。
すると、「VS2013とWinSDKじゃうまくいかないからDXSDKもいれた。動いた。」だそうです。いや、おかしいやん。WinSDKだけでいいって書いとったやん。
腑に落ちないので更に調べる。
すると驚愕の事実が判明。
書籍のとおりDXSDKはWinSDKに統合され、開発時に別途ダウンロード・インストールは不要になった。
が、統合にあたりヘッダファイルの名前(というか構成?)などが結構代わっているので、以前のコードを動かすにはDXSDKをいれる、あるいはWinSDK用に中身を書き換える必要がある。らしい。
なんすかこれ。
書籍は嘘ついてないけど、こんなん誰でも勘違いするよ。
というわけでまとめると、
VisualStudio2013+WinSDKのみで開発は可能。
ただしDXSDK前提で書かれたコードは動かすだけならDXSDKを入れればいい
けど、WinSDKだけで行くなら書き直す必要あり。
こんな感じ。
因みに私はここまできたらWinSDKのみでやってみるよ。DXSDKいれんのも癪だし。