D入门

1. D语言排名一直在增长,  他的目标应该是一门实用的语言. 具体介绍下载它的D language .reference看看.

2. 有用资源

官方编译器链接器DMD DM不同版本. 大版本1和2有一定语法的区别, 笔者使用的是DMD2.

http://ftp.digitalmars.com/ 

开源D项目http://www.dsource.org/projects/ 

里面一个比较像样的IDE, Descent 是Eclipse的插件, 支持代码弹出;

还有一个就是build的程序bud.exe, 两者整合一起还比较好用;

3. IDE 配置

Descent 只需要到Eclipse -> Windows->Preferences->D 设置好DMD的路径, 打开Windows->perspetive->D即可.

Build的设置

Run->External tools->Open external tool dialog

添加一个新的program 路径指向BUD.exe的路径

设置Working dir as ${project_loc}/src 也就是当前工作目录, bud.exe 默认从project src这个目录找源代码, 当然也可以改为自己的source目录.

Argument: 似乎不用添加${resource_loc}   具体参数可以命令行查看bud.exe帮助.

${resource_loc} -names mpr.lib  advapi32.lib

建议在机器的系统环境变量添加PATH指向DMD的BIN目录那样,在Eclipse就不用配置Environment了

因为BUD.EXE要找到DMD.exe来编译和链接. 如果不添加则可在Environment tag增加.

Build就选择相应的D文件, 之后点工具栏的 >|  绿色的右三角右下角是灰色条的按钮(下拉找到bud这个external tool的名字), 就可以直接build。 Run exe的时候就右键选择exe点击Run as D application 

 4. D调用WIN API 和 C

private import std.c.windows.windows;

windows.d 定义了一些window数据类型,保持和windows风格一致.

extern(Windows) {

export LPVOID HeapAlloc(HANDLE hHeap, DWORD dwFlags, DWORD dwBytes);

}

extern (C) {
 export int access(in char* path, int mode);
}

注意到链接的时候,可能需要相应的LIB文件, 使用BUD.EXE build的时候请注意在Eclipse external tool argument里面添加相应的LIB文件.

要注意的是直接从VC或VS2003拷贝过来的LIB是没法给DMD直接使用的, 因为它的格式是COFF,  而BORLAND C里面使用的就是OMF格式的, DMD使用的库文件应该是兼容OMF的, 使用MS的LIB链接时会提示库文件非法, 转换LIB这个问题让笔者郁闷了两天.

解决办法是下载http://ftp.digitalmars.com/coffimplib.zip 使用这个就可以把MS的LIB转换成OMF的. 如果你有VC的库就用这个工具转吧. 有BC或者里面的库就可以直接使用吧?

网上似乎说使用IMPLIB.EXE可以把DLL转成LIB, digitalmars ftp下有个bup.zip里面有个IMPLIB但是笔者试过

导system32下的mpr.dll为mpr.lib但是无法使用.

里面还有个coff2omf.exe似乎说也是可以转COFF的到OMF格式, 但是笔者转了的库只有几K, 纳闷, 只好使用coffimplib.exe了。

 5. 学习了D一阵子, 它的编译速度是没话说的, 能编译出来个exe做些小工具的时候总比java写要打个虚拟机实在.

不过它release的exe还是蛮大的, 200KB, 可能是有虚拟机垃圾回收支持的原因吧。

phobos这个库基本的东西还是有的, 但对于实际应用来说tango这个库会是更好的选择, D作者确实鬼才, 但是希望D的作者能和这些库的作者多合作下, 没一个相对统一的库, 对语言普及还是有点影响的. JAVA还是.NET或者是PHP基本的库还是比较完备的.  直接用D来调用winapi做一个界面或做应用的时候挺累人. 而tango似乎只能在DMD1使用, 一些语法的变化例如alias invariant char*  string; 等等, 语法要稳定了向下兼容的.

开源的Eclipse超越了单干的JBUILDER.  如果有库的统一和IDE的支持, D能发展得更好.

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值