2007年11月06日

CINTERFACEを定義するとD3DXが使えない

アス比固定拡大ツールではC++のソースからDirect3DインターフェースのVtblにアクセスするために#define CINTERFACEをしているのですが、これを定義しているとD3DXのヘッダでエラーが出るようです。

D3DXはインライン関数も多く含まれていますが、該当箇所を見てみると__cplusplusしか考慮されておらず、CINTERFACEが定義されているとメソッドの呼び出しでコンパイルエラーが発生します。

CINTERFACE d3dx9でググっても6件しかヒットしないようなマニアックな仕様では、MSの人達に忘れられていても仕方ないかな?3年前からCINTERFACEを使っている私も、今日まで気付きませんでしたし。

SDKのヘッダに手を加えるわけにもいかないし、VisualC++では#undef __cplusplusは無視されてしまうので、D3DXを使用する部分だけソースを分けないと駄目っぽいです。

タグ:DirectX
2007年11月06日 【プログラミング】 | コメント(0) |

この記事へのトラックバックURL


この記事へのトラックバック
この記事へのコメント

コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。