久しぶりに趣味の日曜プログラミングを再開しますかってことで必要なSDKなどをチェック。
いつのまにかDirectX9.0 SDKのバージョンが上がっていました。(October 2004)
似たように見えるバージョンでも突然仕様が変わったりして気軽にアップデートすると怖いんですが、とりあえず最新版でトライ。
VisualStudio.NET 2003はどうも使いづらいのと、VMWare上にインストールするにはあまりに容量食いすぎるので、使い慣れたVC6.0で開始。
SDKインストール後、去年あたりに作った自作ライブラリをビルド。
DirectX9.0 Summuer 2003では正しくビルドできたものです。
結果、エラー多数_| ̄|○
ヤッパリネ・・・。
↓以下のようなリンクエラーが多数発生。
d3dx9.lib(cvsprogram.obj) : error LNK2001: 外部シンボル "___security_cookie" は未解決です
d3dx9.lib(cfxlprogram.obj) : error LNK2001: 外部シンボル "___security_cookie" は未解決です
d3dx9.lib(cshaderprogram.obj) : error LNK2001: 外部シンボル "___security_cookie" は未解決です
・・・
___security_cookie とはなんぞや???
色々調べてみたところ、VisualStudio.NET(VC7)からついた機能で、メモリになんかチェックいれてバッファオーバーランを防ぐ機能らしい。
VC6.0は未対応。ちょぉショック。
これだからマイクロソフトって大好き。
Microsoft DirectX 9.0 SDK Extrasの説明見ると、
「Visual Studio 6.0 をサポートする d3dx.lib と、Direct3D で使用するスキニング情報をエクストラクトするためのモデリング パッケージ プラグイン」
と書いてあるので、コレのlibファイルを使えばリンクできるの鴨。
明日試してみます。
ダメだったらVC7に移行する事にします・・。
あれインストールに異様に時間かかるから嫌なんだけど・・。
参考:DirectX 9 SDK ダウンロード
Extraの中にあるlibファイルを使うとVC6でもリンクできました。