inohilog

/var/log/inohiro

ついにmonoをやってみた。

前からやるやる言っていた、Linuxとかで.NETアプリケーションを走らせるオープンソースプロジェクトである、「mono」に触ってみました。


といっても、非常に単純な、よくある「Hello World」のプログラムを走らせただけ。

using System;
class Program
{
	static void Main( string[] args )
	{
		Console.WriteLine( "Hello World\n" );
	}
}

「monoは実行環境」ということで、Windows側で書いて、コンパイルしたexeファイルをMac側に転送。

$ mono HelloWorld.exe

みたいな感じで実行したところ、ほんとに「Hello World」って出た。おー。拍手喝采ですよ(AC)。


で、「Windows Formはー?」って友達に言われたので、同じくWindows側でフォームにボタンを1個貼り付けて、クリックしたらメッセージボックスで「Hello mono!」と言うようなコードをかき、コンパイル。でMacに転送して同じくmonoコマンドを用いて実行してみましたが、今度はエラーがばーっと。UI系のコード(Visual Style)とかいけないのかなって思って、Visual Styleを有効にする1行を消してみたが、特に変らず。


で、エラーメッセージを読んだところ、どうやらメソッドが見つかりませんよ的な事が書かれているので、monoのオフィシャルサイトに行き(遅い!)、いろいろ読む。WindowsFormsに関するページを見つけ(http://www.mono-project.com/WinForms)、その中のGetting Started Guide(http://www.mono-project.com/WinForms_Getting_Started_Guide)を読んでみた。するとmonoの他に、「libgdiplus」というのが必要で、こっからダウンロード。


しかし、その「libgdiplus」ってのをインストールしたんですが、結局今のところWindowsFormを利用したアプリケーションは動作せず。Getting Started Guideに書いてあるサンプルコードをそのままコピーして、Mac上でコンパイル(mcs/gmcsコマンドを用いる)してみたが、結果は同じ感じ(Macに何か入っていないみたい)。


そのご、ちょいちょいWebサイトなどを見ていると、GUIアプリケーションを実行する場合はX11が必要だと言うことが発覚。MacPortsを利用するために、Apple Developers Connectionから落としてきたXCodeから、X11SDKはインストールしたんですが、X11自体は「Macのインストールディスクを参照してください。」みたいな感じだったので、インストールしていなかったのです。


しかしこのMacはもらい物なので、インストールディスクない。某学類誌編集室にTigerのインストールディスクが落っこちていたのを知ってるんだけど、すぐに出てくるわけがない。あ、MacPortsX11インストールすれば良いんでね? <- いまここ


// あした統合テストするアプリケーション、まだ書き上がってない。いそげ。