STEP16:Visual Studioでのビルドと実行手順(ソリューションのビルド→デバッグ開始)

STEP16では、ここまで分割して作ってきたC言語RPG(main.c〜battle.c)を Visual Studioで確実にビルドして実行する ための手順をまとめます。
「プロジェクト作成 → ソース追加 → 実行(デバッグ開始)」まで、迷いやすいポイントも含めて整理します。

1. 事前準備(これだけ確認)

Visual Studioに必要なもの

Visual Studioは「C++の開発機能」が入っていないとCコードをビルドできません。

  • Visual Studio Installer を開く
  • ワークロード:C++ によるデスクトップ開発 をインストール(チェックON)
  • インストール済みならOK

ここが入っていないと「ビルドできない」「cl.exeがない」系のエラーになります。

2. 新規プロジェクト作成(最短で動かす)

プロジェクト作成

  1. Visual Studio を起動
  2. 新しいプロジェクトの作成
  3. テンプレートで以下を選ぶ
    空のプロジェクト(C++)(英語UIなら “Empty Project”)
  4. 名前を設定
    ・ソリューション名:rpg(例)
    ・プロジェクト名:rpg(例)
  5. 作成

「コンソールアプリ」でもOKですが、最初は “空のプロジェクト” がいちばんトラブルが少ないです。

3. ソース・ヘッダを追加(分割構成を反映)

あなたの構成(例)に合わせて追加します。

追加するファイル一覧(再掲)

ソースファイル(Source Files)
  • main.c
  • platform.c
  • input.c
  • ui.c
  • map.c
  • services.c
  • items.c
  • characters.c
  • enemies.c
  • battle.c
ヘッダーファイル(Header Files)
  • common.h
  • platform.h
  • input.h
  • ui.h
  • map.h
  • services.h
  • items.h
  • characters.h
  • enemies.h
  • battle.h

追加手順

  1. ソリューションエクスプローラーでプロジェクトを右クリック
  2. 追加 → 新しい項目(または「既存の項目」)
  3. まずは main.c を追加
  4. 同様に残りの .c を追加
  5. Header Files に .h を追加
既にファイルがフォルダにある場合
  • 追加 → 既存の項目 を使う(おすすめ)

すべての「.c」と「.h」を追加するとソリューションエクスプローラーは下図のようになります。

4. 重要:Cとしてコンパイルさせる設定(ここが落とし穴)

Visual Studioは「C++プロジェクト」扱いだと、拡張子が .c でも設定次第で挙動が変わることがあります。
確実に C言語として ビルドしたい場合は次を設定します。

「Cとしてコンパイル」を明示する

  1. プロジェクトを右クリック → プロパティ
  2. 構成プロパティ → C/C++ → 詳細
  3. コンパイル方式 を探す(または “Compile As”)
  4. Cコードとしてコンパイル (/TC) を選択
  5. OK

これで .c が確実にCコンパイラ扱いになります。

5. ビルド手順(ソリューションのビルド)

ビルド

  • メニュー:ビルド → ソリューションのビルド
  • ショートカット:Ctrl + Shift + B

成功すると、出力ウィンドウに “0 failed” などが出ます。

実行手順(デバッグ開始)

6.1 デバッグ実行(推奨)

  • メニュー:デバッグ → デバッグ開始
  • ショートカット:F5

6.2 デバッグなしで実行

  • メニュー:デバッグ → デバッグなしで開始
  • ショートカット:Ctrl + F5

ゲームのように「実行後すぐ閉じてほしくない」場合は Ctrl + F5 が便利です。
F5だと停止した瞬間にウィンドウが閉じることがあります。

7. よくあるトラブルと対処(ここだけ読めば助かる)

7.1 「main が見つからない」「エントリポイントがない」

原因の典型

  • main.c がプロジェクトに追加されていない。
  • main が別名になっている(int main(void) になっていない)
  • 文字コードや構成が崩れている。

対処

  • ソリューションエクスプローラーに main.c があるか確認
  • main 関数が1つだけ存在するか確認

7.2 「外部シンボルが未解決」(LNK2019 / LNK2001)

原因の典型

  • 関数宣言はあるが、その関数を実装している .c がプロジェクトに入っていない。
  • 関数名のスペルミス(宣言と定義で違う)
  • ヘッダの宣言と実装の引数が違う。

対処

  • その関数が入っている .c をプロジェクトに追加
  • 宣言(.h)と実装(.c)を見比べる。

7.3 「printf 文字化け」

原因

  • WindowsのコンソールがUTF-8扱いでない場合がある。

対処(簡易)

  • 表示文字は ASCII 中心にする(ゲームなのでこれが一番堅い)
  • どうしても日本語を出したい場合は platform.c 側でコンソール設定を入れる(必要ならSTEP外で追加)

7.4 「system("cls") が動かない / 画面がちらつく」

  • system("cls") 自体は動きますが、頻繁に呼ぶとちらつきやすいです。

改善案

  • “ちらつき軽減” は将来的に バッファ描画 にすると改善します(学習用途なら現状でOK)

8. デバッグの基本(ゲーム開発で効く)

8.1 ブレークポイント

  • 行番号の左をクリック → 赤い丸
  • F5実行でその行で止まる。

8.2 変数の確認

  • 止まっている間にマウスオーバーで値が見える。
  • ウォッチに追加も可能

よく見ると便利な変数

  • プレイヤー座標(x,y)
  • タイル種別(E/C/I/H/B)
  • HP/MP
  • 所持金(gold)
  • インベントリの個数

9. 実行ファイル(どこにできる?)

ビルド結果は通常ここに出ます。

  • Debugビルド:
    rpg\Debug\rpg.exe
  • Releaseビルド:
    rpg\Release\rpg.exe

※フォルダ名や構成は環境で少し変わります。

10. まとめ(STEP16でできるようになったこと)

  • Visual Studioで「空のプロジェクト」からCの分割構成を組み込める。
  • ソリューションをビルドできる。
  • F5/ Ctrl+F5 で実行できる。
  • ありがちなリンクエラーの原因を切り分けられる。
  • ブレークポイントで探索・戦闘の流れを追える。