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语言的普及文章,每个人都是这样过来的