Windows + Visual C++ 2008 Express EditionでSDLアプリ開発に挑戦

まずは設定しなけりゃ何も始まらない。じゃあ設定から行きましょう。

1.Visual C++ 2008 Express Editonを落としてくる
Visual C++ 2008 Express Editon(以下VC)は、Microsoftが出してる統合開発環境です。タダです。やったね!
なんでVC使おうかと思ったかって言うと、一番使いやすいから。
テキストエディタでコード書いて、cygwinとかMinGWとかでコンパイルしても良いんですけど、やっぱりプロジェクト単位でファイル管理できた方がいいですし。


適当にMSのサイトからダウンロードしてきてインストールします。
途中SQLのインストールについて聞かれましたが、データベースなんぞ使う予定もないのでインストールしませんでした。




2.SDLを落としてくる
肝心要、これがなくちゃ始りません。
公式サイトのDLページから、Development版を落してきます。もちろんWindows用の。


解凍して、適当なわかりやすいディレクトリに、中のlibincludeの両フォルダをコピーします。
私はCドライブ直下に「SDL」というフォルダを作り、その中にコピーしました。
docというフォルダも、とっておきたかったら取っておきましょう。使い方書いてありますから。




3.プロジェクトを作ってみる
ここら辺で私は躓いたので・・・
まず「プロジェクトの新規作成」から「空のプロジェクト」を選択してプロジェクトを作ります。
プロジェクト名は何でも良いです。適当でいいのよ。


するとプロジェクトが作られます。標準設定だと、
「マイドキュメント」→「Visual Studio 2008」→「(プロジェクト名)」→「(プロジェクト名)」
にありますね。
そこに、先ほど2.でコピーしたlibフォルダの中にあるDLLファイルを全部コピーします。

VCの画面に戻りましょう。
今度はVC自体の設定です。メニューから
「ツール」→「オプション」→「プロジェクトおよびソリューション」を展開→「VC++ディレクトリ」
をクリックして、
ディレクトリを表示するプロジェクト」→「インクルードファイル」
を選択します。
ウィンドウ右真中あたりにフォルダのアイコンがあるので、それをクリック。
2.でコピーしたincludeフォルダのパスを入れてください。
私だとこんな感じ。

C:\SDL\include


今度は
ディレクトリを表示するプロジェクト」→「ライブラリファイル」
を選んで、同じようにlibフォルダを追加。
私だと

C:\SDL\lib

になります。
設定したらOKをクリック。


次は、プロジェクトの設定です。メニューの
「プロジェクト」→「(プロジェクト名)のプロパティ」
をクリック。
「構成プロパティ」を展開→「リンカ」を展開→「入力」を選んで、
「追加の依存ファイル」に

SDL.lib SDLmain.lib

と追記します。


追記したら、同じく「リンカ」の項目内にある「システム」をクリック。
「サブシステム」の項目から、「Windows (/SUBSYSTEM:WINDOWS)」を選んで、OK押して閉じる。


これで設定はOKなはず。
緑の矢印(デバッグ開始)の隣にあるプルダウンメニューから「Release」を選んで、もう一度同じ設定をするとReleaseビルドもできるようになります。




4.コンパイルしてみる
じゃあ、意気揚々とソースコードを打ち込んでみましょうか。
画面右側にある(と思われる)ソリューションエクスプローラーから、
「(プロジェクト名)」を展開→「ソースコード」を右クリックして「追加」→「新しい項目」を選びます。
C++ファイルを選んで、ファイル名は「main.cpp(たぶんmain.cでも行ける)」としましょう。
開かれた編集画面に、こちらのサイト様のコードをコピペ。
F5を押して動かしてみましょう。何のエラーも出なければ成功。





さぁさ、いかがでしょう。
今回はSDLのみの導入でしたが、SDL_mixerとかSDL_imageとかSDL_ttfとか使いたかったら、
2.の方法でincludeとlibを同じところにコピーし、DLLをプロジェクトフォルダにコピー、「リンカ」→「入力」→「追加の依存ファイル」にSDL_mixer.libなりを追記すれば使えるはず。




参考にしたサイト様:
http://mono.kmc.gr.jp/~nojima/hiki/?SDL%2F%C6%B3%C6%FE
http://dev.indra-ehm.net/2008/12/setting-visual-studio-2008-for-sdl/