Mono初体验

Mono初体验

最近.NET社区对Mono的热情很高,这也算是微软.NET战略的一个副产品吧。Mono现在的主战场还是在Linux上,可我是个纯粹的Windows程序员,懒得配置一个Linux环境,于是心有不甘地去Mono的老窝逛,发现有Windows的安装程序,于是就下载了一个Mono 1.0.6 for windows。下载的路径是:http://www.mono-project.com/Downloads

安装完成后,在开始菜单里选择Mono Command Prompt,得又回到命令行时代了。用过JAVA的人,应该对Mono的编译和执行方式不陌生。编译是mcs,执行是mono。于是照着前人的例子开始写第一个程序:

using System;

namespace mynamespace

{

public class HelloWolf

{

public static void Main(string [] args)

{

Console.WriteLine("Hello,wolf!");

}

}

}

保存为Hellowolf.cs,然后在命令行里输入:mcs Hellowolf.cs。编译顺利,然后执行mono Hellowolf.exe,一切正常。我试着直接输入Hellowolf.exe,哈,竟然也能正常运行,莫非MonoIL.NET Framework是兼容的?这个问题有待研究。

好了,接下来该写个窗口了。Mono下可没有System.Windows命名空间,而是用一个叫Gtk的空间替代了,照着例子写下了下面的代码,保存为MyMain.cs

// MyMain.cs

// Copyright (c) 2005,aawolf

//

<!--[if !supportEmptyParas]--><!--[endif]-->

using System;

using Gtk;

<!--[if !supportEmptyParas]--><!--[endif]-->

namespace WolfDemo

{

public class MyMain

{

private Gtk.Window window;

<!--[if !supportEmptyParas]--><!--[endif]-->

public static void Main (string[] args)

{

Application.Init ();

new MyMain ();

Application.Run ();

}

<!--[if !supportEmptyParas]--><!--[endif]-->

public MyMain()

{

window = new Gtk.Window ("Gtk# Code Demos");

window.SetDefaultSize (600, 400);

window.DeleteEvent += new DeleteEventHandler (WindowDelete);

<!--[if !supportEmptyParas]--><!--[endif]-->

window.ShowAll ();

}

<!--[if !supportEmptyParas]--><!--[endif]-->

private void WindowDelete (object o, DeleteEventArgs args)

{

Application.Quit ();

args.RetVal = true;

}

}

}

好了,照例执行mcs,可是这次出错了,提示找不到Gtk。我为这事着实花了些工夫,最后才在X:\Mono\lib\mono\gtk-sharp下找到了一个叫gtk-sharp.dll的文件。不敢确定是不是,于是用Reflector看了一下,证明里边确实包含了Gtk命名空间。

于是执行:mcs MyMain.cs –r:d:\mono\lib\mono\gtk-sharp\gtk-sharp.dll

好了,这次终于编译通过,执行mono MyMain.exe,于是Mono的第一个窗口出现了。再试着直接运行MyMain.exe,这次出来的是VS JIT Debugger,毕竟.NET Framework里没有Gtk

好了,第一次这个样子就差不多了,回头慢慢研究J

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值