发新话题
打印

D语言Gui库DFL介绍与安装

本主题由 yidabu 于 2008-3-15 12:13 置顶
D语言Gui库DFL介绍与安装

tag:D语言GUI,D语言界面编程,D语言开发

D语言Gui库DFL下载

    推荐用 svn客户端工具下载,把下面的内容:
    http://svn.dsource.org/projects/dfl/trunk/win32/dfl
    导出到
    dmd\src\other\dfl\
   
    这样就不用去跟踪dfl的新版本发布,随时可以导出最新版.

        如果你不会用svn, 也可以到下面的页面下载zip压缩包:
        http://www.dprogramming.com/dfl.php
   

D语言GUI库DFL的编译

   编译方法一(简便方法):
    DFL源文件目录里的 go.bat和makelib.bat是用来编译dfl.lib的,下面是编译基于Tango的DFL库的方法:
    新建文件:
    dmd\src\other\dfl\dfl_tango.bat
    内容如下:
   
    set dmd_path=D:\pathto\dmd
    set dmc_path=D:\pathto\dm
    set dlib=Tango
    call go.bat
    copy dfl.lib D:\pathto\tango\lib
    pause   
   
    把上面的路径改成你的实际路径,copy句把dfl.lib复制到tango的lib目录下.
    pause是为了能看到编译结果.
   
   
    编译方法二:
    DFL源文件目录里的 go.bat和makelib.bat是用来编译dfl.lib的,点击go.bat进行编译.
    但问题是dfl同时支持Phobos和Tango库,而 D语言中文论坛 http://bbs.d-programming-language-china.org/ 提倡大家用Tango库,要编译基于Tango的dfl.lib,要修改一下go.bat和makelib.bat,事实上我以前就是这样做的,有没有更好的办法?
    办法是有的,我们就用DSSS+SciTE4D来编译DFL.如果你还没有安装DSSS, 请按照下面的教程安装:
    http://bbs.d-programming-language-china.org/thread-605-1-1.html
   
    首先在dmd\src\other\目录新建一个dsss.conf文件,内容如下:
引用:
[dfl]
target=dfl
type=library
postbuild=copy /y dfl.lib ..\..\tango\lib\dfl.lib
target=dfl是指定输出文件名是dfl
    type=library是指定编译库
    postbuild句是编译结束后把库复制到tango的lib目录,这里用了相对路径,你可以根据你的实际改成绝对路径.当然,如果你喜欢手动复制dfl.lib,可以把这行删掉.
   
    上面已经完成了所有工作的99%, 接下来就要打开SciTE4D, 什么,你还没有安装SciTE4D, 立即到下面地址下载:
    http://scite4d.d-programming-language-china.org/
   
    用SciTE4D打开任意一个dfl源文件,按F7, 就自动编译出dfl.lib并复制到tango\lib目录下,如果出错,会有提示.
    编译好后,把dfl.lib加到dmd\bin\sc.ini的DFLAGS里,这样以后在写dfl相关程序时就不用显式指定dfl.lib了.
   
    sc.ini的DFLAGS行里要有dfl.lib,类似这样(不要照抄,要照你的实际情况设置):
引用:
DFLAGS="-I%@P%\..\tango;%@P%\..\src\other;" -version=Tango -defaultlib=tango-base-dmd.lib -L+tango-user-dmd.lib+dfl.lib
D语言Gui库DFL的第一个实例


    在SciTE4D里新建文档,把下面代码贴进去,并保存为D:\hello\dchina.d
复制内容到剪贴板
代码:
import dfl.all;

int main()
{
    Form myForm;
    Label myLabel;

    myForm = new Form;
    myForm.text = "hello, D Language China";
    myForm.width = 600;
    myForm.height = 300;

    myLabel = new Label;
    myLabel.font = new Font("Verdana", 14f);
    char[] str =  
    " http://www.d-programming-language-china.org/ \n"
    " http://bbs.d-programming-language-china.org/ \n"
    " http://scite4d.d-programming-language-china.org/ ";
    myLabel.text = str;
    myLabel.location = Point(15, 15);
    myLabel.autoSize = true;
    myLabel.parent = myForm;

    Application.run(myForm);

    return 0;
}
新建D:\hello\dsss.conf文件,里面内容如下:
引用:
[dchina.d]
buildflags=-version=Tango
然后在SciTE4D里按F7编译出dchina.exe,按F5运行dchina.exe, 如果出错,会有提示信息,照提示修正即可.
   
   


相关资源:

        DFL主页:
        http://www.dprogramming.com/dfl.php

        DFL Wiki:
        http://wiki.dprogramming.com/Dfl/HomePage

        DFL Wiki 文档:
        http://wiki.dprogramming.com/DflDoc/HomePage

        DFL讨论区:
        Forum: http://dsource.org/forums/viewforum.php?f=39

        IRC:
        http://www.dprogramming.com/dirclib.php

本文历史

    20070419
    初版,写出自己编译DFL库的经过
   
    20070315
    3月,D语言论坛地址从
    http://www.d-programming-language-china.org
    更改到
    http://bbs.d-programming-language-china.org
    将近一年过去了,现在再看以前所写的D语言普及文章,有不少要改进的地方(比如以前dfl不提供svn下载)
    本文基本全部重写了,结合SciTE4D来编译DFL库,更加简单
    重写文章,测试代码,重新截图并上传,贴到论坛,我总是一再在干这样在别人看来浪费时间的sha shi...,D语言国内高手不少,希望高手也来多写些D语言的普及文章,每个人都是这样过来的

TOP

发新话题