Visual Statio下的D语言还发环境及Windows桌面开发库Dgui设置好了,该是测试一下D语言来写个程序测试测试了。
使用VS新建一个D语言的Console的项目,输入代码
import std.stdio; int main(string[] argv) { auto str = "你好!"; writeln(str); str.writeln(); return 0; }
调试运行后发现出错了,Console输出的是乱码
从朋友那里了解到,在windows中使用writeln函数输出时默认使用的是gbk编码,而d语言编译是使用utf8编码进行编译。因此,需要把默认的utf8转换为gbk才能正常输出,这个转化需要使用到exCode库,该库项目地址:https://github.com/meatatt/exCode 下载后发现,exCode项目是使用dub源码管理工具管理的项目,需要再下载dub工具才能编译,dub项目地址:https://github.com/dlang/dub
先来编译exCode项目吧
将dub的文件复制到dmd编译下的bin目录:
添加dmd编译器执行路径到环境变量
运行cmd,进入到exCode目录后,运行dub命令进行编译,如下图所示
编译成功后得到excode.lib文件
编译完成后,像使用dgui库一样,把excode.lib放到C:Ddmd.2.066.1.windowsusrlib目录,源码放到C:Ddmd.2.066.1.windowsusrsrc 目录
配置完成后,就可以使用该库了。
在工程性性里添加库的连接
import std.stdio; import excode; int main(string[] argv) { wstring str = "你好!"; writeln(UNI2GBK(str)); str.UNI2GBK().writeln(); return 0; }
如果使用excode时有import database问题,将import database注释掉:
正常编译后运行:
中文已经成功显示出来了,str变量的长度为3,非常正确。
作者:宛宏南