はかせのラボ

私の頭の中を書いていく雑記ブログです

プログラミング ようやっとサンプルを動かせた話

あいさつ

どうも、はかせです。
今回はいつぞや入手したDirectXのサンプルを
今更ながらやっと動かせたのでその話です。

なぜ動かせなかったのか

原因は二つありました。
・プラットフォームツールセットがvs2010のものであった
・必要なlibをリンクしていなかった

一つずつ話します。

プラットフォームツールセットがvs2010のものであった

VisualStudioには各バージョンごとにそれ用のツールセットがあります。
これを使うことで別バージョンのVisualStudioでもソリューションを開いたり、
ビルドをしたりできるわけですね。

私が入手したDirectXのサンプルではvs2010のものがデフォルトで適用されていました。
これをvs2017のものに変更しました。
f:id:hakase0274:20190606224344p:plain

必要なlibをリンクしていなかった

これもまたバージョン問題と浅からぬ関係なのですが、
vs2015より前のバージョンまでは__vsnwprintf という関数が
dxerr.libというライブラリに入っていたのですが、
vs2015以降ではこの関数がlegacy_stdio_definitions.libというライブラリに移動されたようです。
なのでリンカー→入力→追加の依存ファイルにライブラリを追加します。
f:id:hakase0274:20190606224745p:plain

実行

さて、これで私のサンプルが動かない原因は全て排除しました。
お待ちかねの実行です。
f:id:hakase0274:20190606224901p:plain

はい木が出ました。
これでソースコードだけでなく実行時の値とかも見れますね。

あとがき

今回はようやっとサンプルが動かせた話でした。

サンプルを入手してからというものの、ビルドできねぇってなって
ただビルド済みの実行ファイルは既にあるし
大丈夫だべーなんて言ってやってたら沼にハマり倒しましたw

なので新しくプロジェクトを作り直し、
めんどくさがっていたサンプルの動作環境づくりをし、
ちまちまとですがサンプルの分析を進めやすくなるようにしてきました。

ジオメトリインスタンシングとかの
ドローコール削減の取り組みは今後絶対必要になると思うので
時間かけてでもしっかりマスターしたいですね。

それでは今回はこの辺でノシ

参考

qiita.com