C#虽是 Windows 的亲儿子,不过令人意外的是,他写桌面软件并没有想象的容易。
我举一个最简单的例子,调用 Windows API,一个非常简单的 API,C#代码主要如下(因为还要写类这些,实际代码更多)
public struct Point
{
int x;
int y;
}
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(ref Point point);
Point point = new Point();
bool result = GetCursorPos(ref point);
但如果我们用玩具语言 aardio,只要一句代码, aardio 实现同样功能的代码如下:
var ret,point = ::User32.GetCursorPos({int x;int y})
我再上一个稍微复杂一点的例子,桌面软件最常用的多线程异步、图标字体、按钮动画等等,用 aardio 编写只要数句代码,我写了一个非常简单的例子:
这样短短的几句代码就可以创建一个小的桌面软件,只要一页代码。
发布的 EXE 也非常小,
不需要.Net 运行库,可以支持 XP 到 WIN10 的所有操作系统。
我再发一个稍微复杂一点的开源软件例子 wubi-lex 发行体积只有非常小的 820KB, 仅仅相当于一个普通的 JPG 图像文件那么大。
所以有时候,只是写点玩具的时候,我还是喜欢用 aardio 这样的玩具语言比较省事。