mysql – 将C标头转换为D的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 将C标头转换为D的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1553字,纯文字阅读大概需要3分钟。
内容图文
![mysql – 将C标头转换为D的问题](/upload/InfoBanner/zyjiaocheng/907/3040b7c83f17403f8b7dcd46752d5122.jpg)
我正在尝试将MySql C连接器6.02标头转换为D,但是我遇到了一些奇怪的崩溃.
我的猜测是我在翻译结构或函数方面犯了一些错误(我不太擅长C).
我在libmysql.dll上使用了implib / system来创建一个lib文件.
我无法让htod.exe工作.使用-hs(包括系统文件)抱怨它无法找到系统文件.
Coffimplib.exe没有选项将_添加到导出的内部名称.
我找不到免费版的coff2omf.
mysql.d是包装器.我在每个包装定义之前都包含了C定义,以便更容易发现错误.该文件也包含mysql DLL和转换后的libfile.
编译mytest_fails.d时崩溃了. mytest_works.d只有一个断言,这使它工作..使用-release编译mytest_works也会导致崩溃.
我一直在使用dmd 2.051
Download mytest.zip from share1t.com
更新:我还在D.learn新闻组上询问了一些有关此问题的问题,但我认为没有人通过这些代码.
> C Const
> Compiler extensions
> Connot get htod.exe to work
> The weird crashes
解决方法:
stdcall是一个Windows函数调用约定(与C调用约定非常不同). HTOD无法使用extern标记多个函数(Windows).这是正常的,因为HTOD没有配备处理宏(STDCALL定义为宏,我可以从msyql.d中的剩余注释中看到).
这是一个更新的mysql.d文件:
http://dl.dropbox.com/u/9218759/mysql.d
现在,您需要OMF格式的正确导入库.我通常建议您不要使用implib.我有几个问题,其他人报告说使用它有问题.使用coffimplib是要走的路.但首先,您需要一个COFF导入库.
如果需要,可以从这里下载带有COFF导入库的Mysql版本:http://dev.mysql.com/downloads/mirror.php?id=377977#mirrors(标记为Visual Studio的DLL形式的库通常带有COFF导入库).
但是我在这里为您提供OMF格式的翻译COFF导入库:http://dl.dropbox.com/u/9218759/libmysql.lib
我已经尝试了两个测试用例,现在它们似乎都运行良好.如果出现问题,请尝试再次检查已翻译的头文件(mysql.d),我可能错过了正确指定所有调用约定.
内容总结
以上是互联网集市为您收集整理的mysql – 将C标头转换为D的问题全部内容,希望文章能够帮你解决mysql – 将C标头转换为D的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。