自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

转载 D语言中的静态构造函数使用时需要注意的事情

我在使用DGUI时发现,application.d的enableManifest在使用程序开启多线程后会出一个异常,该异常发生在std.file.write(temp, xpManifest);处。 经调试发现,这是因为程序开启多线程后(不管你的线程中有没有使用DGUI的Application),D语言中的每一个线程都会调用静态构造函数来初始化自己的全局数据。导致同时写...

2016-08-26 15:22:00 75

转载 D语言中使用extern(Windows)类重载Object方法时的问题

使用D语言已经有快20天了,已经完成项目需要的基本功能,但还需进一步完善。 最近两三天在DGUI基础上移植了几个Window窗口控件,有TreeList(树+列表视图),DataList(数据列表),MdiFrom(多窗口),IEWebBrowser(IE浏览器),SciEditor(Sci源代码编辑器),DockPanel(notpad的Docking插件)...

2016-08-26 14:09:00 119

转载 D语言中的全局变量与多线程单例

在D语言中的全局变量与其它语言有着一定的区别,D语言中的全部变量是分配在每一个线程中的,也就是说两个不同的线程访问到的全局变量是两个不同的数据。这是一个很神奇的事情,来看一个例子: import std.stdio;import core.thread;import std.concurrency;int temp = 0;int main(string[...

2016-08-22 14:31:00 141

转载 D语言dstddb库使用sqlite会少第一行问题

使用dstddb操作sqlite数据库时,例程: import std.database.front;import std.database.sqlite.database;auto url = "path://./core.sdb";auto db = new Database!DefaultPolicy(url);auto conn = db.co...

2016-08-21 17:16:00 108

转载 D语言编译选项 mscoff选项

在编译ms32coff格式时,需要使用-op选项,要不deubg版本在连接时会有错误: "dflags-windows-x86-dmd": [ "-m32mscoff" ],"dflags": [ "-op" ] 输出dmd编译命令及参数 dub build -v转载于:https://www.cnblogs.com/wanhongnan/p/5792441.html...

2016-08-21 12:09:00 113

转载 D语中不初始化数组

在默认情况下,D语言中的数组是会进行初始化,如果要它不初始化,则可以使用以下语法: char[1024] bufff = void;转载于:https://www.cnblogs.com/wanhongnan/p/5790892.html...

2016-08-20 17:51:00 87

转载 D语言调用C++中的std::string

在D语言中调用C++中的std::string , 需要使用 extern(C++,class)语法,该语法在DMD2.071版本中不支持,需要使用ldc1.1。 下载地址:https://github.com/ldc-developers/ldc/releases/ 。 下载ldc2-1.1.0-alpha1-win32-msvc.zip 使用LDC2-1....

2016-08-20 15:54:00 157

转载 C++错误处理库

http://crashrpt.sourceforge.net/docs/html/index.html http://stackoverflow.com/questions/19656946/why-setunhandledexceptionfilter-cannot-capture-some-exception-but-addvectoredexc 使用Se...

2016-08-20 10:43:00 131

转载 D语言VisualD中在Release中如何使用符号文件

我们在使用try{}catch(Throwtable e){}时,输出堆栈信息时有符号文件才能知道错误在哪里发生。 新建工程,添加测试代码 import std.stdio;import std.string;void test_error(){ throw new Exception("test");}int main(stri...

2016-08-20 10:38:00 67

转载 D语言中编译entity,database与mysql时需要注意的一个问题

注:编译entity及database时需要修改一个ulong类型为uint类型,不然会有_mysql_stmt_prepare@16连接错误。 entity库可以使用ORM方式访问数据库, 把类型与数据库直接对应,使用起来非常方便。使用entity时需要另一个库database库的支持。使用dub编译entity库时会自动下载。 @table("users"...

2016-08-18 16:14:00 123

转载 D语言中调用C++的std::string遇到的问题分析

实验环境: VisualD+Vs2003 ms-coff格式 需要在D语言中调用C++的std::string并不是不可能,是要注意一些问题。在C++中使用string时,很多时候是会使用以下方式: string getStdString(){ … } 和 printStdString(string str); 还有一种是: ...

2016-08-18 08:53:00 238

转载 D语言与C++做映射时需要注意的事情

注:本实验是在VisualD的ms-coff文件格式下完成的。 做了一天的D语言中extern(C++)的ABI分析,分析结果显示不是所有的C++语法都能在D语言中对应,所以在做对应时需要注意一些问题。分析数据可以找我Q:52019943要。因为有不少,这里不列出来。只给一个主要部分: 其中,C++中的class值类型与class的引用类型,无法在D语言中...

2016-08-17 17:02:00 158

转载 D语言与C一起编程时,不用同时写两个C的两个头文件的办法

注意:本方法只适合于C头文件是自己写的时候,但是如果使用别人的的库的时候,我的这个方法不适合使用,因为一般库使用宏之类型的会影响本方法的作用。 使用VisualD新建一个工程,添加两个文件test.cpp与test.h ,添加好后如图: 需要设置工程属性: test.cpp文件如下: #include "test.h...

2016-08-17 14:34:00 95

转载 D语言使用dub编译ms-coff文件

需要在dub.json中加入一行"dflags-windows-x86-dmd": ["-m32mscoff"], 转载于:https://www.cnblogs.com/wanhongnan/p/5776173.html

2016-08-16 13:59:00 200

转载 D语言VisualD中使用C/C++与D语言混合编程

在D语言的工程中,是可以同时使用C/C++代码文件的。 在VisualD中有一个C/C++编译器命令项。默认使用的是微软的C/C++编译器。 下面来测试下C/C++与D的混合编译。先建立一个Console工程,如下图: 接下来添加一个test_cpp.cpp文件和一个test_c.c文件,注意一定要写上后缀,要不就会变成.d文件 建好后如下...

2016-08-16 11:12:00 615

转载 D语言 在ms-coff文件格式下使用DGUI库

如果你使用DGUI库,同时又需要使用ms-coff格式的lib文件,那么你需要注意一些事情。 在Visual-D中使用MS-COFF库文件格式需要选中以下两个选项: 使用以下代码,编译时会出错 import std.stdio;import dgui.all;import core.sys.windows.windows;import...

2016-08-16 06:57:00 108

转载 D语言中做图片转换

在D语言中可以使用imageformats库做图片转换. 该库可以从https://github.com/lgvz/imageformats 下载。 下载好后,装文件放入到自己的工程中就可以使用了。 转换函数: read_image_from_mem(imgData, ColFmt.RGBA); 转出来的数据为IFImage结构,以上面指定的格式...

2016-08-15 06:35:00 75

转载 VS SDK

VS SDK在线文档 https://msdn.microsoft.com/zh-cn/library/bb161718.aspx 以前VS还提供本地文档,现在都不提供了,只能看在线文档了。 这里有VS调试器扩展入门以及 API 接口转载于:https://www.cnblogs.com/wanhongnan/p/5771550.html...

2016-08-15 04:59:00 80

转载 D语言中使用UnCompress类出现问题 Bug

UnCompress类对zip解压做了进一步封装,然而这个做得并不完善。使用它来解压数据时会出现不完整的情况。 if(encoding == "gzip") { UnCompress decmp = new UnCompress; scope(exit)delete decmp; ...

2016-08-15 03:29:00 89

转载 使用DGUI制作一下正则查找工具

DGUI总体来说还是很不错,在使用过程中,据需求做了一部分修改。今天用它来做了一个小工具。 很是不错,哈哈…. 缩小一点看看: 对DGUI做了以下修改: 一、给Event做了+=与-=操作符重载 二、做了anchor布局 三、给ListBox添加了removeAll方法 ...

2016-08-14 17:25:00 143

转载 从内存中加载DLL

开发工程 https://github.com/fancycode/MemoryModule 原理介绍 http://blog.csdn.net/xrain_zh/article/details/44728321 使用 Api 从内存加载DLL http://bbs.pediy.com/showthread.php?t=141006转载于:https://www.cnblogs.co...

2016-08-12 18:23:00 334

转载 D语言中使用excode库时,需要单独编译

我把excode库源码放到我的工程中来后,每次编译时间都需要12s,非常糟糕。只是修改工程中的任意一个文件一行,编译也得要12s。不可思议。 只好把excode单独编译,不和我自己的工程放在一起。 ok了,一切正常。 这和D语言编译器有关系,只要工程中的一个文件代码修改,所有文件都会进行编译。转载于:https://www.cnblogs....

2016-08-12 16:25:00 153

转载 D语言中使用ms-coff格式的lib文件

在Dmd2.067以上的版本中,可以使用ms-conff格式的库文件。visual-d在默认模式下不是使用的ms-coff文件格式,需要在工程的选项中进行配置: 以上两个选项都需要选上,我测试过只选第三个的时候,会有问题。转载于:https://www.cnblogs.com/wanhongnan/p/5759321.html...

2016-08-10 23:38:00 102

转载 D语言中使用日志文件

D语言标准库中已经有比较好的日志文件实现,默认是把日志输出到标准输入输出,如果需要输入到文件,设置如下: stdThreadLocalLog = new FileLogger("log.txt"); 在执行上面语句后, 使用error,log等函数,都会将日志输出到log.txt文件中。转载于:https://www.cnblogs.com...

2016-08-07 04:07:00 65

转载 D语言中的algorithm过一遍

参考https://dlang.org/phobos/std_algorithm.html 在std.algorithm中提供了大量操作Range的函数。一共分为六大类。 一、Searching 搜索 1) all 判断函数,是否集合中所有元素是否都符合条件 auto arr = [1, 3, 5, 7, 9];auto ret1 = arr.all!(f=...

2016-08-07 02:21:00 71

转载 D语言中的Range与C#中IEnumreable的区别

基本的Range使用的接口函数有 front, popFront, empty三个函数,只要实现这三个函数,就是一个Range 。使用这三个函数来访问元素时代表着这是一个有序的集合,因此可以称Range为序列集,这是一个队列式的操作。 而C#中的IEnumreable只要求能访问元素,并无有序要求,这与C#中的opApply接口相同。 在D语言中有两种...

2016-08-06 23:08:00 106

转载 D语言中使用Curl读取网页

D语言中对Curl库有两个包, 一个是etc.c.curl,一个是std.net.curl,其中etc.c.curl是原始的libcurl库的c语言接口转化为D语言的接口,使用这个包里的函数,可以更原始的方法使用libcurl库。而std.net.curl包则是在etc.c.curl基础上对libcurl库的调用做了一个封装,让使用者使用起来更加方便。使用etc.c.curl...

2016-08-06 20:32:00 93

转载 在D语言中如何调用Windows中的COM控件

Windows中COM组件是Windows中重要组成部分,可以注册成系统公共组件,也可以不注册直接调用。在D语言中调用COM组件前,我们需要了解COM组件。COM组件都有一个公共的接口,使用IDL语言编写,使用mild.exe编译器编译后生成tlb格式文件,通常叫做类型库,在生成COM组件的DLL时,会把这个文件放在DLL的资源文件中,资源名称叫做TYPELIB ...

2016-08-06 05:31:00 151

转载 D语言反射

静态语言能不能使用反射呢? 在D语言这里可以肯定地告诉你,绝对是可以的。先来看几个程序: 一、反射当然程序中使用到的模块与类型 ModuleInfo* m1; int i1=0; foreach (m; ModuleInfo) { m1 = m; wr...

2016-08-04 05:00:00 149

转载 D语言基本类型判断 traits.d

D语言中的基本类型函数都放于 traits.d 文件中,该文件每一句就提示: Templates which extract information about types and symbols at compile time 在编译时提取有关类型和符号的信息的模板。 也就是说,这里放的模板及模板函数,都是可以用于在编译时提取类型和符号信息的。 这一部分的函数是可用来进行编译时...

2016-08-04 03:48:00 149

转载 D语言中不使用转义字符的办法

1.使用q auto str = q{ @property auto front() { return _captures; }};2.使用`符号 auto str = `\w+`;转载于:https://www.cnblogs.com/wanhongnan/p/5731362.html...

2016-08-03 03:51:00 92

转载 D语言使用起来让人很不爽的地方

标准库大量使用模板来写,使得标准库使用起来非常麻烦。 主要问题是函数返回的类型不明确,很难确定该类型具有哪些方法,除非把相关函数背熟,这是一个很糟糕的事情。 难道这个库只是做给他们熟人用的吗????????????? 看源代码都只能看出类型为auto,真是晕倒。 要不都叫我自己写库去。。。。。。。 --------------------...

2016-08-03 03:21:00 91

转载 D语言中无法捕获函数指针为null的异常

import std.stdio;int main(string[] argv){ try { auto f = delegate(){}; f = null; f(); } catch(Throwable e) { writeln(e.msg); ...

2016-08-03 02:34:00 97

转载 D语言dmd2.071中的range

上一文中介绍了大量的dmd2.066.1中标准库的range。在这range在dmd2.071.1,也就是最新版本里已经重做了。分成了三个部: std.range.interfaces; std.range.primitives; std.range.package; 使用时还是使用import std.range;会自动导入三个文件。 该版本中...

2016-08-03 00:34:00 113

转载 使用dmd2.071.1版本编译DGUI

打在DGUI工程文件,在工程属性页的命令行中添加一个-d选项,如下图: 即可以编译。 其它部分和dmd2.066.1 版本相同: http://www.cnblogs.com/wanhongnan/p/5702140.html转载于:https://www.cnblogs.com/wanhongnan/p/5731224.html...

2016-08-02 23:55:00 103

转载 D语言字符串枚举的使用

D语言中enum不只是可以使用数字类型,也可以使用字符串: import std.stdio;import std.range;int main(string[] argv){ enum XYZ : string { a = "foo" } writeln(XYZ.a == "foo"); wr...

2016-08-02 02:09:00 58

转载 D语言超强的编译时检测技术,强类型技术

D语言引入了static if , static assert , template , is 等一些语句,使得D语言可以使用编译时执行逻辑处理,同时也能进行编译时测试,这使得编译器在编译时就可以对自定义的类,结构,参数进行动态检测,这样让定义的东西有了强类型功能,牛B之作。 import std.stdio;import std.range;int main(s...

2016-08-02 01:00:00 85

转载 D语言标准库之range序列集

D语言标准库中是这么解释Range的: Ranges generalize the concept of arrays,lists, or anything that involves sequential access 意思是Range概括的数组,列表,或任何涉及顺序访问的概念,我们就叫它序列集吧,以区分aggregate(迭代集)与sets(键值集)。 ...

2016-08-01 17:56:00 380

转载 D语言文件操作

文件操作软件制作过程中经常会使用到。D语言的文件操作需要使用std.stdio包,在D语File被封装为一个结构类型struct File。写个例子来试试, 简单使用文件的方式需要使用std.file 模块,在后面也后介绍: 1. 写入文件一行 auto file = File("abc.txt");file.writeln("abc");file.close();...

2016-08-01 01:45:00 118

转载 D语言中字符串的操作

字符串的操作在软件开发中是特别重要的一个事情,因为基本上的编程都会使用到字符串,字符串操作的好坏决定着一个语言的好与差。在我做过的一个项目中曾经就出现过字符串操作性能问题。 D语言字符串有 string,wstring,dstring三种类型,在D语言中字符串是使用字符数组定义的,三种类型分别对应char,wchar,dchar。char只有一个字...

2016-07-30 01:55:00 435

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除