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 に対応していない場合、両者のバージョンを揃える。 |