Windowsで Mono + SDL2 を使ってC#アプリを開発・実行するための手順を以下にまとめます。
目次
✅ 1. 前提:Mono for 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.libやinclude→ コンパイルに不要(C#から直接使うなら)
✅ 3. C# から SDL2 を使う:SDL2-CS(ラッパー)
SDL2 は C 言語ライブラリのため、C# から使うにはラッパーが必要です。よく使われるのが以下の NuGet パッケージです:
🎯 SDL2-CS
インストール方法:
NuGet パッケージとして導入できます(.NET Framework または Mono に対応):
例)手動ダウンロード:
- GitHubから
SDL2-CS.dllをダウンロード(またはビルド) - 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.dllがhello.exeと同じフォルダにあることを確認してください。
🔧 トラブル対策
| 症状 | 対策 |
|---|---|
DllNotFoundException: SDL2 | SDL2.dll の配置を確認。PATHに含まれるか、exeと同じ場所に置く。 |
TypeLoadException や EntryPointNotFound | SDL2-CS のバージョンが SDL2.dll に対応していない場合、両者のバージョンを揃える。 |
