摘要: 我在使用DGUI时发现,application.d的enableManifest在使用程序开启多线程后会出一个异常,该异常发生在std.file.write(temp, xpManifest);处。 经调试发现,这是因为程序开启多线程后(不管你的线程中有没有使用DGUI的Application),D语言中的每一个线程都会调用静态构造函数来初始化自己的全局数据。导致同时写manif... 阅读全文
posted @ 2016-08-26 15:22 honan 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 使用D语言已经有快20天了,已经完成项目需要的基本功能,但还需进一步完善。 最近两三天在DGUI基础上移植了几个Window窗口控件,有TreeList(树+列表视图),DataList(数据列表),MdiFrom(多窗口),IEWebBrowser(IE浏览器),SciEditor(Sci源代码编辑器),DockPanel(notpad的Docking插件),SysH... 阅读全文
posted @ 2016-08-26 14:09 honan 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 在D语言中的全局变量与其它语言有着一定的区别,D语言中的全部变量是分配在每一个线程中的,也就是说两个不同的线程访问到的全局变量是两个不同的数据。这是一个很神奇的事情,来看一个例子: import std.stdio; import core.thread; import std.concurrency; int temp = 0; int main(string[] argv) {... 阅读全文
posted @ 2016-08-22 14:31 honan 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 使用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.connection()... 阅读全文
posted @ 2016-08-21 17:16 honan 阅读(459) 评论(2) 推荐(0) 编辑
摘要: 在编译ms32coff格式时,需要使用-op选项,要不deubg版本在连接时会有错误: "dflags-windows-x86-dmd": [ "-m32mscoff" ],"dflags": [ "-op" ] 输出dmd编译命令及参数 dub build -v 阅读全文
posted @ 2016-08-21 12:09 honan 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 在默认情况下,D语言中的数组是会进行初始化,如果要它不初始化,则可以使用以下语法: char[1024] bufff = void; 阅读全文
posted @ 2016-08-20 17:51 honan 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 在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.1时,必须... 阅读全文
posted @ 2016-08-20 15:54 honan 阅读(706) 评论(0) 推荐(0) 编辑
摘要: http://crashrpt.sourceforge.net/docs/html/index.html http://stackoverflow.com/questions/19656946/why-setunhandledexceptionfilter-cannot-capture-some-exception-but-addvectoredexc 使用SetUnha... 阅读全文
posted @ 2016-08-20 10:43 honan 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 我们在使用try{}catch(Throwtable e){}时,输出堆栈信息时有符号文件才能知道错误在哪里发生。 新建工程,添加测试代码 import std.stdio; import std.string; void test_error() { throw new Exception("test"); } int main(string[] argv) { ... 阅读全文
posted @ 2016-08-20 10:38 honan 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 注:编译entity及database时需要修改一个ulong类型为uint类型,不然会有_mysql_stmt_prepare@16连接错误。 entity库可以使用ORM方式访问数据库, 把类型与数据库直接对应,使用起来非常方便。使用entity时需要另一个库database库的支持。使用dub编译entity库时会自动下载。 @table("users") str... 阅读全文
posted @ 2016-08-18 16:14 honan 阅读(368) 评论(0) 推荐(0) 编辑