Windowsで Mono + SDL2 を使ってC#アプリを開発

Windowsで Mono + SDL2 を使ってC#アプリを開発・実行するための手順を以下にまとめます。


目次

✅ 1. 前提:Mono for Windows のインストール

Mono の公式サイトから Windows インストーラをダウンロードしてインストールしてください。

🔗 Mono公式サイト(Windows)

インストール後、コマンドプロンプトで確認:

mono --version

✅ 2. SDL2(C言語ライブラリ本体)のインストール

SDL2 のDLLとヘッダーを取得し、実行環境に組み込みます。

🔽 SDL2 を入手

公式の Windows 版バイナリをダウンロード:

🔗 SDL2 Downloads – https://www.libsdl.org/download-2.0.php

  • SDL2-devel-2.28.x-VC.zip(または MinGW 版でもOK)

🗂 配置場所(例)

  • SDL2.dll → プロジェクト実行フォルダ(hello.exe と同じ場所)
  • SDL2.libinclude → コンパイルに不要(C#から直接使うなら)

✅ 3. C# から SDL2 を使う:SDL2-CS(ラッパー)

SDL2 は C 言語ライブラリのため、C# から使うにはラッパーが必要です。よく使われるのが以下の NuGet パッケージです:

🎯 SDL2-CS

インストール方法:

NuGet パッケージとして導入できます(.NET Framework または Mono に対応):

例)手動ダウンロード:

  1. GitHubから SDL2-CS.dll をダウンロード(またはビルド)
  2. C#のプロジェクトに using SDL2; を追加

✅ 4. サンプルコード(C# + Mono + SDL2)

using SDL2;
using System;

class Program {
    static void Main(string[] args) {
        SDL.SDL_Init(SDL.SDL_INIT_VIDEO);

        IntPtr window = SDL.SDL_CreateWindow("Hello SDL2",
            SDL.SDL_WINDOWPOS_CENTERED,
            SDL.SDL_WINDOWPOS_CENTERED,
            800, 600,
            SDL.SDL_WindowFlags.SDL_WINDOW_SHOWN);

        SDL.SDL_Delay(3000);

        SDL.SDL_DestroyWindow(window);
        SDL.SDL_Quit();
    }
}

✅ 5. コンパイルと実行(Mono)

mcs -r:SDL2-CS.dll hello.cs
mono hello.exe

実行前に SDL2.dllhello.exe と同じフォルダにあることを確認してください。


🔧 トラブル対策

症状対策
DllNotFoundException: SDL2SDL2.dll の配置を確認。PATHに含まれるか、exeと同じ場所に置く。
TypeLoadExceptionEntryPointNotFoundSDL2-CS のバージョンが SDL2.dll に対応していない場合、両者のバージョンを揃える。

よかったらシェアしてね!
目次