使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用
在Windows上开发桌面应用程序的工具有很多,早期的VB,VC+MFC等等,.Net出来后,使用C#开发桌面应用程序就更加容易,C#对Windows的面向对象方式的封装使得程序开发更新方便,重用性也大大提高,但总是要带着.Net巨大的环境。 使用Dgui不仅可以去掉.Net巨大的环境,而且Dgui的类封装结构和C#的Form结构差不多,使得程序开发起来也非常方便。
一、下载Dgui库
Dgui库是开源项目,项目地址:https://bitbucket.org/dgui/dgui ,最后更新日期为2015-02-02, 好像好久都没有更新了,不知道是不是作者已经不维护了。也不能使用最新的dmd编译,只能使用dmd2.066.1版本编译, 源码下载地址:https://bitbucket.org/dgui/dgui/get/d024c84e98ff.zip
项目里还有几个编译好的例子程序,下载地址:https://bitbucket.org/dgui/dgui/downloads/DGui%20samples.7z
二、先看看例子程序的运行结果
解压下载的 DGui samples.7z 文件,如下图:
一共有11个例子程序,其中resources.exe是使用了资源文件进行编译的,图标显示的就不一样。运行几个试试。
events.exe的进行示图(就只有一个按钮)
gradient_rect.exe使用GID绘制的界面
grid.exe表格布局多控件显示
splitter.exe 用拆分条控件布局
toolbar_32_x_32.exe使用工具框显示工具按钮
看了几个例子程序运行的界面,效果还是很不错,直接使用的windows自带的风格,有点像是C#写出来的程序运行的效果,比从linux上移值过来的gui显示效果好,更有windows上界面的味道。还是很值得windows程序员去发展使用的项目。
三、编译Dgui
Dgui因为好久没更新的原因,只能使用dmd2.066.1版本编译器编译,这需要在VasualD里设置。始下图:
Dgui解压后目录如下
DGui工具使用的是vs2008建的工程,我测试过,使用vs2013打开也一样是可以的,使用vs2013打开时只需要进行一次转换:
转换后就直接可以使用了,编译成功,如下图:
Release版本也一样直接编译成功.
DGui的编译主要是要注意DMD的版本一定要是2.066.1,以后的版本现在还没办法编译通过。
四、DGui的使用
DGui已经编译好,我们建个工程来使用一下吧,这是一个很不错的体验。
在dmd.2.066.1.windows目录中新建一个usr目录,在usr目录下再建src,lib两个目录,如下图:
C:\D\dmd.2.066.1.windows\usr目录
将dgui的源码目录复制到src目录,如下图所示:
编译好的dgui.lib文件复制到lib目录,如下图所示,debug版本重新命一下名DGui_debug.lib
打开vs2013的visual-D的设置进行设置,设置如下:
在Import paths项里添加C:\D\dmd.2.066.1.windows\usr\src ,这可以让编译器在编译里可以搜索该目录导入符号。
在Library paths中添加C:\D\dmd.2.066.1.windows\usr\lib, 这个设置可以让编译器在连接时可以自动到该目录中搜索连接库。
设置好后,新建一个Windwos的项目,如下图:
新建好项目后,打开项目的属性页添加dgui.lib库的连接,如下:
把winmain.d是的代码清空后,写上我们自己的代码,如下:
import dgui.all;
int main(string[] args)
{
Form f = new Form();
f.size = Size(300,200);
f.startPosition = FormStartPosition.centerScreen;
Label lbl = new Label();
lbl.text = "你好!测试一下";
lbl.dock = DockStyle.fill;
lbl.alignment = TextAlignment.center | TextAlignment.middle;
lbl.parent = f;
Application.run(f);
return 0;
}
编译程序后调试运行如下图:
作者:宛宏南