mathjax

2018年2月16日金曜日

Visual Studio2017でDirectX9の環境を構築したい

いまさら感は満載だけれども、DirectXを学びたい。Direct3D。しかしDX12はとても難しく、DX11も難しく、初心者はDirectX9から入門すべきと書いてあった。

けれども、DirectX9の入門書は2007年発売だったりする。サンプルプログラムはVisual Studio2017に無理やり読み込ませてもエラー多発。
Visual Studio2015でDirectX9の環境を構築する - Qiita
こちらのサイトの内容を参考にさせていただいた。



事前準備
  • Visual Studio 2017をインストールしている。
  • DirectX SDK (June 2010)をインストールしている。
    • していなかった。DXライブラリを使ったC#のプログラムはDirectX SDKを入れなくても動いていたので、要らないで済めばこれに越したことはないと思ったが、DirectXのヘッダファイルを知らないとVisual Studio 2017が赤い波々をincludeの下に引いて主張するので、仕方なくインストールした。
      #include <d3dx9.h>
      #include <dxerr.h>
    • DirectX SDKの最新版は2018年2月15日現在もDXSDK_Jun10.exeだった。下記からダウンロード。
    • メニューから、ファイル→新規作成→プロジェクト→インストール済→Visual C++→全般→空のプロジェクトを選んでプロジェクトを新規作成する。
“とりあえず最低限のコード”はビルドできた。
“DirectX9のヘッダとかライブラリを読み込む”は、
DirectX SDKをインストールしたのち、
  • メニューから、プロジェクト→一番下のProjectのプロパティを選ぶ。
  • 構成プロパティ→C/C++で、追加のインクルードディレクトリに$(DXSDK_DIR)Include;を追加。
  • 構成プロパティ→リンカー→全般→追加のライブラリディレクトリに$(DXSDK_DIR)Lib\x86;を追加
でビルドできるようになった。

そして古い本のサンプルプログラムをビルドしようとしたら、やはりエラーが出る(構成プロパティのインクルードディレクトリ、ライブラリディレクトリは追加済)。
VisualC++ ビルドエラー ’main’: entrypoint not found | ノースブレイン コンピューターゲーム
発生していた不具合はmainのエントリーポイントがありません。で上記のサイトを参考にさせていただいた。ソリューションエクスプローラでシェーダーファイル~.fxを右クリック、プロパティを表示して、構成プロパティ→HLSLコンパイラ→全般で、シェーダーの種類をエフェクト(/fx)、シェーダーモデルをShader Model 2(/2_0)とした。DirectX9ではこうらしい。(Shader Model3(/3_0)を選んだらビルドエラーで動かなかった。)

こうしてようやくサンプルプログラムが動いた。

0 件のコメント:

コメントを投稿