如何使用D的C库?

ral*_*lle 18 c d

今天我听说过D编程,它与C代码兼容.不过我还没有找到任何关于是否可以使用D的GT库或PortAudio等C库的信息?如果有可能,你能解释一下如何做到这一点吗?

Bax*_*imo 19

可以从D调用C库.您需要做的是将C头文件转换为D.在大多数情况下,这非常简单,并且有一个难以使用的命令行工具来帮助自动化这个过程.除了玩具示例之外,它对我来说从来没有真正起作用,但它可能是一个很好的开始,可以看到需要完成的转换.只需添加一个代码片段,您就无法自行转换为标题,并了解htod的用途.

您经常遇到的最大问题是C预处理器的创造性使用.有些东西可以变成D中的version()语句,但不是全部.

至于实际编译和链接代码,在类似unix的平台上,我认为你可以使用GCC在C代码中编译和链接.在Windows上,您必须使用DMC编译C文件并与DMD链接.或者你可以使用任何能够编译的编译器将C代码编译成DLL,然后与DMD链接,你需要从DLL中创建一个与DMD兼容的导入库.这可以使用DigitalMars提供的免费Basic Utilities Package中的implib工具完成.

还有很多这些标题翻译已经完成.首先浏览Dsource 的Bindings项目,或者在开始像翻译GTK标题之类的大事之前首先询问数字地图D新闻组是很有用的.许多像GTK这样的流行图书馆已被包装(例如:GTKD)