DLL製作用VisualStudio2010準備講座

最終更新

2014-04-27 「VC2013を使う」を追加

まえがき

VCの無料版でDLLを制作したい人のためのVC準備講座です。
なお本講座はあくまで準備だけなので、プログラミングやDLL制作についての話はありません。
もともとはDLL制作講座として書いていたはずだったのですが、
熱しやすく冷めやすい性格によりここまでで燃え尽きてしまいました。

goluahのDLL作成、というとまず挙がるのがBCCです。無料ですし。
ただ、「BCCを使ってはいけない」というわけではありませんが、BCCの無料版はもう10年以上昔のバージョンです。
できれば本体製作と同じVC、もしくは何か別のでもいいのですが、とにかくもっと新しいものを使うことを推奨します。
ということで、このページでは本体と同じVC2010の準備の仕方について説明します。

ファイルの準備

VC2010のインストールの手順については、インコのページに詳しく記載されていますので、そちらをご覧ください。
30日以上使う場合は登録が必要となるので、適当に捨てアドなり偽名なりを使用してください。
また、ビルドの項で使用するのでAT寿司氏のskydriveから cdevkit112.lzh をダウンロードして解凍しておいてください。
(ちなみに、追加キャラクター制作マニュアルは manual フォルダにあります。)

プロジェクトの作成

まずはプロジェクトを作りましょう。
スタートメニューなどから Visual C++ 2010 Express を起動します。
上部のメニューバーから ファイル(F) → 新規作成(N) → プロジェクト(P) を選択します。
左側の インストールされたテンプレート から Visual C++Win32 を選択し、 Win32 プロジェクト を選択します。
名前(N) は何でも構いません。この講座では ABC としますので、読むときに置き換えてください。
場所(L) も好きな場所にどうぞ。ただし、どこにしたかは覚えておいてください。
ソリューションのディレクトリを作成(D) のチェックを外し、「OK」ボタンを押します。
Win32 アプリケーション ウィザードへようこそ というのが表示されます。「次へ」ボタンを押します。
アプリケーションの種類で DLL(D) を選び、追加のオプションで 空のプロジェクト(E) にチェックを入れ、「完了」ボタンを押します。

設定

DLLを作成するために必要な設定をします。これは必須です。
上部のメニューから プロジェクト(P) → ABCのプロパティ(P)を選択し、 構成(C) で すべての構成 を選択します。
構成プロパティ → 全般 → 文字セット を選択し、 設定なし 又は マルチバイト文字セットを使用する を選択します。
次に、構成プロパティ → リンカー → 入力 → モジュール定義ファイル を選択し、右のボタンから <編集...> を選択します。
character_vc.def と入力して、「OK」ボタンを押します。

VCを使いやすくするための設定をします。必須ではありませんが、推奨です。
メニューから ツール(T) → 設定(S) → 上級用の設定 を選択します。
メニューから ツール(T) → オプション(O) を選択します。
テキスト エディター → C/C++ → 全般 を選択し、 行番号(L) にチェックを入れて「OK」ボタンを押します。
これで「今見てるこの行は何行目ですよ」という行番号が表示されます。
なんでデフォルトでOFFなのか疑問なほど便利なので、ぜひ表示しておきましょう。

ビルド

大ざっぱに言うと、ビルドとはソースをexeやdllに変換する作業のことです。
どれだけソースを書いても、それはただの文字列です。それを物として組み立てる作業がビルドです。
・・・正確な意味は検索してください。

一度dllを作ってみましょう。
これが成功すれば準備は完了。後はソースを書いていくだけです。
とはいえソースがなければ何も作れないので、今回は「8頭身モナー」のソースを使います。
準備の項で解凍した cdevkit112.lzh から出てきた dlltemplate フォルダから
gobjbase.cpp、character_vc.def、define_gcd.h、gobjbase.h、gobject.h の5個と
goluah フォルダ内の chardll_8mona フォルダから
action_attack.cpp、action_hissatu.cpp、action_normal.cpp、bullets.cpp、character.cpp、cell.h、character.h の7個
合計12個のファイルをプロジェクトの作成時に指定したフォルダにコピーします。
これらのファイルをVCの左側にあるソリューションエクスプローラの ソース ファイル にドラッグアンドドロップします。
次に、上部のアイコンが並んでいるところの Debug とかかれたボタンを選択し、 Release を選択します。
次に、メニューから ビルド(B) → actionのビルド(U) を選択します。
すると、画面下方の 出力 というウィンドウに文字が表示されていきます。
そして、一番最後に
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
と表示されれば、ビルドが成功してdllが作成されています。
場所として指定したフォルダ内に Release というフォルダが作成されます。
その中にある ABC.dll が完成品です。

では次に動作確認をしましょう。
バックアップを取るため、まずお手持ちのgoluahの 8mona フォルダにある action.dll を適当な名前にリネームします。
ビルドした ABC.dllaction.dll にリネームし、 8mona フォルダに入れます。
goluahを起動してテストプレイして、問題がなければOKです。

これで準備は完了です。お疲れ様でした。そしてdll制作頑張ってください。

VC2013を使う

※未確認につき、これでその通りになるとは限りません。

1.22の11版現在、goluah用DLLをビルドするときにはVC2010の中身が必要になります。
…ですが、逆に言うと、ソースを書くときに使うのは別にVC2012だろうと2013だろうと関係ないのです。
VC2013はちょっと便利な機能が追加されているので、使ってみましょう。

インストール

VC2013のインストールの手順については、インコのページに詳しく記載されていますので、そちらをご覧ください。

設定

フォルダにある ABC.sln を右クリックなりD&DするなりしてVC2013で開いてください。
プロジェクトとソリューションの変更をレビュー なるウィンドウが開いた場合は、「OK」ボタンを押します。
上部のメニューから プロジェクト(P) → プロパティ(P)を選択し、 構成(C) で すべての構成 を選択します。
構成プロパティ → 全般 → プラットフォーム ツールセット を選択し、
Visual Studio 2013 (v120) から Visual Studio 2010 (v100) に変更し、「OK」ボタンを押します。
これで完了です。

何が便利

スクロールバーのところに、現在カーソルがある行や、変更があった行が見えるようになります。
「さっき変更したのってどこの行だっけ?」がなくなります。個人的には必需。
右クリックメニューに追加された 定義をここに表示 もなかなか便利です。
…ただ、何においてもそうですが、新しいものは古いものに比べて起動が遅かったりメモリを喰ったりします。
スペックなどを考えて使い分けてください。

Q&A

========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
と表示され、dllが作成されません。

出力ウィンドウを一番上から読んで error を探し、そのエラーについてググってください。
エラーは連鎖的に発生するので「一番最初の1個を修正したら100個直った」なんてこともあります。
とにかくまず一番上について調べましょう。

VCを閉じたのですが再開するにはどうすればいいですか。

フォルダにある ABC.sln から再開できます。

出力ウィンドウに warning というのが出ます。何か危険な雰囲気がします。

error でなければ大丈夫ですので無視してください。そんなにビビらないでください。

完成したdllを毎回 action にリネームするのが面倒です。

上部のメニューから プロジェクト(P) → ABCのプロパティ(P) を選択します。
構成プロパティ → 全般 → ターゲット名$(ProjectName) から action に変更してください。

Debug のままでも正常に動作しました。わざわざ Release にする必要性を感じません。

作成したファイルを配布するのなら Release にしましょう。
1. Debug だとファイルサイズが大きくなる
2. Debug だと実行速度が遅くなる 体感できないレベルだとしても、ベストは尽くしておきましょう
3. Debug だと作成したファイルにpdbファイルの絶対パスが記入される(=ユーザー名が流出する可能性あり)