当前位置: 首页 > 工具软件 > Mono > 使用案例 >

Mono初体验

苗康平
2023-12-01

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

//

 

using System;

using Gtk;

 

namespace WolfDemo

{

    public class MyMain

    {

        private Gtk.Window window;

 

        public static void Main (string[] args)

       {

           Application.Init ();

           new MyMain ();

           Application.Run ();

       }

 

        public MyMain()

       { 

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

           window.SetDefaultSize (600, 400);

           window.DeleteEvent += new DeleteEventHandler (WindowDelete);

 

           window.ShowAll ();

       }

 

        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

 类似资料: