使用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 文件,如下图:

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

    一共有11个例子程序,其中resources.exe是使用了资源文件进行编译的,图标显示的就不一样。运行几个试试。

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

events.exe的进行示图(就只有一个按钮)

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

gradient_rect.exe使用GID绘制的界面

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

grid.exe表格布局多控件显示

 

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

splitter.exe 用拆分条控件布局

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

toolbar_32_x_32.exe使用工具框显示工具按钮

       看了几个例子程序运行的界面,效果还是很不错,直接使用的windows自带的风格,有点像是C#写出来的程序运行的效果,比从linux上移值过来的gui显示效果好,更有windows上界面的味道。还是很值得windows程序员去发展使用的项目。

      三、编译Dgui

      Dgui因为好久没更新的原因,只能使用dmd2.066.1版本编译器编译,这需要在VasualD里设置。始下图:

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用 使用2.067以上的版本是编译不了的。

      Dgui解压后目录如下

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

    DGui工具使用的是vs2008建的工程,我测试过,使用vs2013打开也一样是可以的,使用vs2013打开时只需要进行一次转换:使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

转换后就直接可以使用了,编译成功,如下图:

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

Release版本也一样直接编译成功.

        DGui的编译主要是要注意DMD的版本一定要是2.066.1,以后的版本现在还没办法编译通过。

        四、DGui的使用

        DGui已经编译好,我们建个工程来使用一下吧,这是一个很不错的体验。

        在dmd.2.066.1.windows目录中新建一个usr目录,在usr目录下再建src,lib两个目录,如下图:

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用 使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

C:Ddmd.2.066.1.windowsusr目录

将dgui的源码目录复制到src目录,如下图所示:

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

编译好的dgui.lib文件复制到lib目录,如下图所示,debug版本重新命一下名DGui_debug.lib

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用 打开vs2013的visual-D的设置进行设置,设置如下:使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

在Import paths项里添加C:Ddmd.2.066.1.windowsusrsrc ,这可以让编译器在编译里可以搜索该目录导入符号。

在Library paths中添加C:Ddmd.2.066.1.windowsusrlib, 这个设置可以让编译器在连接时可以自动到该目录中搜索连接库。

        设置好后,新建一个Windwos的项目,如下图:

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

新建好项目后,打开项目的属性页添加dgui.lib库的连接,如下:

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用 使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用

把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;
}

编译程序后调试运行如下图:

使用D语言开始Windows桌面应用程序 -- Dgui库编译与使用 大功告成。~~~~

                                                                                                                                                        作者:宛宏南