yidabu 2007-5-5 08:29
D语言Gui库DFL介绍与安装
D语言Gui库DFL介绍与安装
tag:D语言GUI,D语言界面编程,D语言开发
[b]D语言Gui库DFL下载[/b]
推荐用 svn客户端工具下载,把下面的内容:
[url]http://svn.dsource.org/projects/dfl/trunk/win32/dfl[/url]
导出到
dmd\src\other\dfl\
这样就不用去跟踪dfl的新版本发布,随时可以导出最新版.
如果你不会用svn, 也可以到下面的页面下载zip压缩包:
[url]http://www.dprogramming.com/dfl.php[/url]
[b]D语言GUI库DFL的编译[/b]
编译方法一(简便方法):
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语言中文论坛 [url]http://bbs.d-programming-language-china.org/[/url] 提倡大家用Tango库,要编译基于Tango的dfl.lib,要修改一下go.bat和makelib.bat,事实上我以前就是这样做的,有没有更好的办法?
办法是有的,我们就用DSSS+SciTE4D来编译DFL.如果你还没有安装DSSS, 请按照下面的教程安装:
[url]http://bbs.d-programming-language-china.org/thread-605-1-1.html[/url]
首先在dmd\src\other\目录新建一个dsss.conf文件,内容如下:
[quote][dfl]
target=dfl
type=library
postbuild=copy /y dfl.lib ..\..\tango\lib\dfl.lib[/quote]
target=dfl是指定输出文件名是dfl
type=library是指定编译库
postbuild句是编译结束后把库复制到tango的lib目录,这里用了相对路径,你可以根据你的实际改成绝对路径.当然,如果你喜欢手动复制dfl.lib,可以把这行删掉.
上面已经完成了所有工作的99%, 接下来就要打开SciTE4D, 什么,你还没有安装SciTE4D, 立即到下面地址下载:
[url]http://scite4d.d-programming-language-china.org/[/url]
用SciTE4D打开任意一个dfl源文件,按F7, 就自动编译出dfl.lib并复制到tango\lib目录下,如果出错,会有提示.
编译好后,把dfl.lib加到dmd\bin\sc.ini的DFLAGS里,这样以后在写dfl相关程序时就不用显式指定dfl.lib了.
sc.ini的DFLAGS行里要有dfl.lib,类似这样(不要照抄,要照你的实际情况设置):
[quote]DFLAGS="-I%@P%\..\tango;%@P%\..\src\other;" -version=Tango -defaultlib=tango-base-dmd.lib -L+tango-user-dmd.lib+dfl.lib[/quote]
[b]D语言Gui库DFL的第一个实例[/b]
在SciTE4D里新建文档,把下面代码贴进去,并保存为D:\hello\dchina.d[code]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;
}[/code]新建D:\hello\dsss.conf文件,里面内容如下:
[quote][dchina.d]
buildflags=-version=Tango[/quote]
然后在SciTE4D里按F7编译出dchina.exe,按F5运行dchina.exe, 如果出错,会有提示信息,照提示修正即可.
[img]http://bbs.d-programming-language-china.org//attachments/d/20070419dflconfig1_w.gif[/img]
[b]相关资源:[/b]
DFL主页:
[url]http://www.dprogramming.com/dfl.php[/url]
DFL Wiki:
[url]http://wiki.dprogramming.com/Dfl/HomePage[/url]
DFL Wiki 文档:
[url]http://wiki.dprogramming.com/DflDoc/HomePage[/url]
DFL讨论区:
Forum: [url]http://dsource.org/forums/viewforum.php?f=39[/url]
IRC:
[url]http://www.dprogramming.com/dirclib.php[/url]
[b]本文历史[/b]
20070419
初版,写出自己编译DFL库的经过
20070315
3月,D语言论坛地址从
[url]http://www.d-programming-language-china.org[/url]
更改到
[url]http://bbs.d-programming-language-china.org[/url]
将近一年过去了,现在再看以前所写的D语言普及文章,有不少要改进的地方(比如以前dfl不提供svn下载)
本文基本全部重写了,结合SciTE4D来编译DFL库,更加简单
重写文章,测试代码,重新截图并上传,贴到论坛,我总是一再在干这样在别人看来浪费时间的sha shi...,D语言国内高手不少,希望高手也来多写些D语言的普及文章,每个人都是这样过来的