【发布时间】:2011-05-31 18:20:16
【问题描述】:
我在思考如何与 D 中的静态 (.lib/.a) 和动态 (.dll/.so) 的 C/C++ 库进行交互时遇到了麻烦。据我了解,这是可能的告诉 DMD 编译器链接 .lib 文件,并且您可以使用 Digital Mars 提供的 implib 工具将 .dll 文件转换为 .lib。另外,我遇到过this page,这意味着可以通过将C 头文件转换为D 接口文件来调用.dlls 中的函数。这两种方法是否等效?这些相同的方法是否适用于 Unix 库文件?另外,如何从这些库中引用函数、枚举等,以及如何告诉他们的 D 编译器与这些库链接(具体来说,我使用的是 VisualD)?如果有人能提供一些从 D 代码中引用 .lib、.dll、.a 和 .so 文件的示例,我将不胜感激。
【问题讨论】: