本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

「ゲームプログラマになる前に覚えておきたい技術」 VS2012対応

VisualStudio2012の季節がやってきたので、「ゲームプログラマになる前に覚えておきたい技術」のサンプルプロジェクト群を対応してみました。基本的にVisualStudio2010版なのですが、元々が 2008用のためいくつか設定し直しやソースコードを変更している部分があります。

必要な物(準備)

  • VisualStudio 2012 (RTM版で動作チェックしています)
  • DirectX SDK 2010June をインストールしておいてください。
  • 書籍にありますが、環境変数 GAME_LIB_DIR を設定しておいてください。
    → ユーザー環境変数にセットしておく方がよいかもしれません。

詳しい手順は以前の2010用の記事を参考にしてください。
こちら →  https://blog.techlab-xe.net/archives/368

ファイル本体はこちら。 GamePgVS20xx-V4

■注意事項

公開しているアーカイブの再配布を禁止します。
また、公開したアーカイブを使用したことによる損害については、
筆者および公開した私自身がその責務を負いません。
利用する際には、自己責任でご利用下さい。

■その他

意外と気付かないで苦労される方が多いので書いておきたいと思います。
「ゲームプログラマになる前に覚えておきたい技術」で使用しているプロジェクトの設定ですが、実行に別途VCランタイムを必要としないスタティックリンク版の設定となっています。
設定の”コード生成”部分 において、”マルチスレッド” or “マルチスレッドデバッグ” が設定されています。通常プロジェクトの生成直後は、”マルチスレッドDLL” / “マルチスレッドデバッグDLL” が設定されます。
この差異に気付かずにプログラムを作成し、リンクで失敗するなどの話を見かけますので、自作プログラムで使用される場合にはこの点をご確認ください。

プログラミング
すらりんをフォローする
すらりん日記

コメント

  1. orange より:

    はじめまして。
    自分は、VC2012Expressを使っています。
    以前のVC2010用の記事における、
    1,Modules.slnのビルドは上手くいったのですが、
    2,それ以外のフォルダのGameLib.slnのビルドが上手くいきません。
    以下のエラーが出力され、ビルド失敗となってしまいます。

    エラー 8 error MSB3073: コマンド “mkdir D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\
    mkdir D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\include
    mkdir D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\include\GameLib
    mkdir D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\include\GameLib\Base
    mkdir D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\lib
    copy D:\GameLib2008\src\GameLibs\2DActionGame\..\Modules\include\GameLib\Base\DebugStream.h D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\include\GameLib\Base\
    copy src\GameLib.h D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\include\GameLib\
    copy src\Framework.h D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\include\GameLib\
    copy D:\GameLib2008\src\GameLibs\2DActionGame\lib\GameLib_d.lib D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\lib\
    copy D:\GameLib2008\src\GameLibs\2DActionGame\lib\\*.pdb D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\lib\
    copy D:\GameLib2008\src\GameLibs\2DActionGame\..\Modules\lib\*.pdb D:\GameLib2008\2DGraphics1\lib\GameLib_d.lib;\2DActionGame\lib\

    :VCEnd” はコード 1 で終了しました。 C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets 134 5 Framework

    どうか解決方法を教えて下さい。
    よろしくお願いします。

  2. slash より:

    環境変数GAME_LIB_DIRの場所は正しいでしょうか?
    zip展開後の「使用許諾規約.txt」が存在する場所を GAME_LIB_DIR として設定されているかをちょっと確認してみてください。

  3. orange より:

    返信ありがとうございます。
    おっしゃられた通り、GAME_LIB_DIRの場所が正しくありませんでした。
    修正したところ、全てのエラーが消えきちんとリビルドすることができました。
    本当にありがとうございます。

  4. victor より:

    はじめまして。

    Visual Studio Express 2012を使っています。

    Visual Studio Express 2012にはパッチビルドがないのですが、その場合ビルドはどのように行えば良いですか?

    • slash より:

      確認してみたところ確かにExpress2012ではバッチビルドの項目がないですね。
      この場合、”Debug”, “Release” というように構成を切り替える部分があるので、そこを手動で変更しつつビルドを行います。
      バッチビルドはこれらをまとめてやってくれるだけなので、これを手作業でやっていくイメージです。

  5. victor より:

    なるほどバッチビルドとはそういうことをしていたのですね。

    おかげさまで解決出来ました。

    ありがとうございました。

     

     

     

     

     

  6. koji2112 より:

    自分は、VC2013Expressを使っています。
    以前のVC2010用の記事における、
    1,Modules.slnのビルドがうまくいきません。
    どうしてでしょうか? 以下エラーメッセージです。

    エラー 4 error C3861: ‘max’: 識別子が見つかりませんでした d:\gamelib2012\src\gamelibs\modules\src\fileio\archive.h 138 1 Modules
    エラー 5 error C3861: ‘min’: 識別子が見つかりませんでした d:\gamelib2012\src\gamelibs\modules\src\fileio\managerimpl.h 393 1 Modules
    エラー 6 error C3861: ‘max’: 識別子が見つかりませんでした d:\gamelib2012\src\gamelibs\modules\src\fileio\archive.h 138 1 Modules
    エラー 7 error C3861: ‘min’: 識別子が見つかりませんでした d:\gamelib2012\src\gamelibs\modules\src\fileio\managerimpl.h 393 1 Modules

    • slash より:

      こちらでも環境を準備して確認してみました。
      確かに 2013の環境で発生するようですね。

      問題となっているファイル archive.h を開いて、次のように修正して下さい。
      (こちらではこの作業で Modules.sln のビルドがうまくいきました)

      Archive.h を開いて
      #include  と書いてある行の下に、 #include  と1行書き足します。
      
      // 例
      #include "GameLib/Base/HashMap.h"
      #include "GameLib/base/Compressor.h"
      #include 
      #include 
      
タイトルとURLをコピーしました