2011-12-29 85 views
7

对于D(特别是Windows下的D 2.0),是否存在任何现有的正在运行的MySQL语言绑定仍在维护,更新或甚至远程捅入?数十个谷歌搜索大多只指向以前由一个Manfred Hansen在http://www.steinmole.de/d/托管的代码,但是该网站现在已经死亡,并且任何地方都没有镜像副本。D的MySQL语言绑定?

我确实设法找到这个:http://code.google.com/p/mysql4d/以及另一个名为DDBI的项目,显然只适用于D 1.0和Tango。虽然..更多的谷歌搜索表明,我需要使用implib.exe将MySQL中包含的libmysql.dll转换为libmysql.lib,但该程序似乎对我来说是失败的:

>implib.exe /system libmysql.lib libmysql.dll  
Digital Mars Import Library Manager Version 7.6B1n 
Copyright (C) Digital Mars 2000. All Rights Reserved. 
Error(10): Error: cannot read DLL input file 

谷歌搜索“无法读取DLL输入文件”显示完全恐怖:零结果。我是否做了一件完全错误的事情,还是我有一些版本的MySQL的DLL无法再转换?

版本:

DMD32 D Compiler v2.056 
MySQL Ver 14.14 Distrib 5.5.8, for Win64 (x86) 
+1

对于后人来说,我看到的DLL问题是由于implib.exe显然无法读取64位文件。我下载了32位版本的MySQL社区服务器5.1,并且能够通过implib.exe传递该libmysql.dll来创建一个可工作的dmd-linkable导入库。当然,我仍然从各个模块中获得了大量访问冲突错误/段错误,但这完全是另一回事。下面答案中提到的纯D模块似乎可以完成这项工作。 – ccjuju 2012-01-01 09:58:52

回答

7

有几个MySQL的绑定,首先是这个:https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff/blob/master/mysql.d

但(恕我直言)最有希望的项目是MySQL协议的原生d执行。它可以在这里找到:https://github.com/britseye

对于上面尝试使用的工具,需要使用COFFIMPLIB工具从libmySQL.dll文件的MySQL中为MySQL库libmysql.lib创建一个OMF版本。

更新:史蒂夫的mysqln项目的这两个分支是活跃的:https://github.com/simendsjo/mysqlnhttps://github.com/rejectedsoftware/mysql-native

+0

感谢您的信息!我会检查那些其他项目...但是,我曾尝试使用COFFIMPLIB转换MySQL 5.5中包含的lib和/或dll。这两个文件包含在发行版中: – ccjuju 2011-12-30 06:43:17

+0

4,175,872 libmysql.dll 23,920 libmysql.lib 工具不运行在DLL上, > coffimplib.exe libmysql.dll _libmysql.lib 错误:缺少归档签名 虽然它在libmysql.lib上成功运行。但是,如果我试图链接到生成的文件,我仍然会得到各种'Symbol Undefined _mysql_query'等错误。 这不符合我的典型经验领域,但我想知道是否需要将_字符以某种方式添加到函数名称的前面?我记得这是一个可以通过implib.exe的标志,但coffimplib.exe似乎没有这样的选项。 – ccjuju 2011-12-30 06:52:19