【问题标题】:MySQL language bindings for D?D 的 MySQL 语言绑定?
【发布时间】:2011-12-29 09:02:56
【问题描述】:

是否有任何现有的、有效的 D(尤其是 Windows 下的 D 2.0)的 MySQL 语言绑定仍在维护、更新,甚至远程戳?数十次谷歌搜索大多只指向之前由 Manfred Hansen 在http://www.steinmole.de/d/ 托管的一些代码,但这个网站现在已经死了,任何地方似乎都没有镜像副本。

我确实设法找到了这个: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)

【问题讨论】:

  • 对于后代,看来我遇到的 DLL 问题是由于 implib.exe 显然无法读取 64 位文件。我下载了 32 位版本的 MySQL 社区服务器 5.1,并且能够通过 implib.exe 传递该 libmysql.dll 以创建一个工作的、可链接 dmd 的导入库。当然,我仍然从各个模块中得到了许多访问冲突错误/段错误,但这完全是另一回事。不过,下面答案中提到的纯 D 模块似乎可以完成工作。

标签: mysql windows d


【解决方案1】:

有几个 MySQL 绑定,从这个开始:https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff/blob/master/mysql.d

但是(恕我直言)最有前途的项目是 MySQL 协议的本机 D 实现。可以在这里找到:https://github.com/britseye

对于您在上面尝试的那个,您需要 COFFIMPLIB 工具来创建 MySQL 库 libmysql.lib 的 OMF 版本,该版本与 MySQL 一起分发的 libmySQL.dll 文件。

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

【讨论】:

  • 感谢您的信息!我将检查那些其他项目......但是,我确实尝试使用 COFFIMPLIB 来转换 MySQL 5.5 中包含的 lib 和/或 dll 这两个文件包含在分发中:
  • 4,175,872 libmysql.dll 23,920 libmysql.lib 该工具无法在 DLL 上运行,>coffimlib.exe libmysql.dll _libmysql.lib 错误:缺少存档签名,尽管它在 libmysql.lib 上成功运行.但是,如果我尝试链接生成的文件,我仍然会收到各种“符号未定义 _mysql_query”等错误。这超出了我的典型经验范围,但我想知道是否需要以某种方式将 _ 字符添加到函数名称的前面?我记得这是 implib.exe 可以通过的标志,但 coffimlib.exe 似乎没有这样的选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多