我有一些需要在 Delphi 应用程序中使用的 C 代码。使用 cmake,我可以在 Visual Studio 2012 中生成一个解决方案,并将其编译为 DLL。我要花很长时间才能在 Delphi 中为所有函数编写所有导入单元。我可以使用一个工具将 DLL .h 文件转换为 pascal 导入单元,但 Visual Studio 没有为我提供 DLL 的 .h 文件。
那么我的选择是什么?:
- 我是否必须亲自从 .c 文件中取出所有 .h 文件并将它们编译成一个文件?
- 有没有办法让 Visual Studio 在编译期间为 DLL 生成 .h?
- 还有什么我可以尝试将 DLL 导入 Delphi 以便在另一个应用程序中使用吗?
预先感谢您能够提供的任何帮助。
最佳答案
通常 C 代码的开发人员也会生成一个头文件。你知道为什么没有一个吗?或者也许您只是还没有找到它。
您不会找到一个好的工具来为您创建头文件。但无论如何,您都不需要头文件。您需要一个 Pascal 导入文件。即使您有头文件,也没有好的工具可以将其转换为 Pascal 导入文件。有一些工具可以尝试完成这项工作,但我的经验是它们效果不佳。
只有当 C 代码有额外的注释时它们才能很好地工作,但它们很少这样做。例如,这应该如何翻译:
int foo(int, int*);
int*
参数是标量还是数组?如果是前者,参数是可选的吗?可以传递NULL
吗?如果是后者,数组有多长?基本头文件不提供完整的规范。
我想说最好的做法是手动编写 Pascal 导入代码。如果有很多重复,那么您可以编写自己的小工具来提供帮助。无论如何,这就是我总是做的事情。
关于c - 在 Visual Studio 2012 中生成 .h 文件以及 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27274411/