CreateInputLayoutをContent Assistで入力できるようになるまで

DirectXヘルプをいちいち見ながらコードを組むのが面倒になってきたのでEclipseでアシストの設定を入れてみた…ら再びはまってしまった。
とりあえずいろいろいじってID3D11Device::CreateInputLayoutが入力できるところまで設定できたので自分用にメモ。

使ったバージョンは以下の通り。

以下手順

  • 「Project」−「Properties」−「C/C++ General」−「Paths and Symbols」メニュー
    1. 「Includes」タブから「Add...」ボタンでDirectXのヘッダファイルとbccのヘッダファイルのディレクトリを追加する
    2. 「Symbols」タブから「Add...」ボタンで「__BORLANDC__」と「_WIN32」と「__cplusplus」を追加する(値はたぶん適当でも大丈夫だけど、一応__BORLANDC__の方はbccのバージョンにあわせて551みたいにしてみた。他は適当に1にした)

これでヘッダに書いてあるクラスがindexerの対象になる。defineは設定しておかないとindexerが思ったところを見てくれないので設定しておく。ちなみに今回は面倒なので全言語(Assembly、GNU C、GNU C++)に同じ設定を入れた。

  • 「Project」−「Properties」−「C/C++ General」−「Indexer」メニュー
    1. 「Enable project specific settings」のチェックボックスをONに変更する
    2. 「Files to index up-front」のところを「windef.h, objbase.h, winnt.h, d3d10misc.h」に変更する

これでアシスト対象にDirectXのクラスメソッドが出てくるようになる。ちなみにID3D10Blobを使わないならd3d10misc.hはいらない。てか、d3d10misc.hを入れていてもID3DBlob::GetBufferPointerとかはアシストに表示されない...orz (ID3DBlobはID3D10Blobのtypedefなのに...)

  • 「Project」−「Properties」−「C/C++ General」−「File Types」メニュー
    1. 「Use project settings」のラジオボタンを選択して「New...」ボタンから「.h」を「C++ Header File」で設定する

この設定は不要かもしれない。いろいろ試している最中で設定しただけだし。



今のところあまりコードを書いていないけど、ID3DBlob以外はアシストが効いているっぽい。でも、d3d10misc.hを設定に入れているとF3キーで定義を参照しようとするといちいち10と11どっちなのか聞かれてウザい...orz うん、消そう。いらないね(^^;

ちなみにBDSを使わずにEclipseを使う理由は、単にBDSが旧PCに入れてあるのと新PCは64ビットコードを出力できるC++Builderの発売待ちでbccしか入れてないからだったりする。まぁ仮に新PCへインスコし直したとしてもBDS2006のアシスト重いしねぇ。