c - 在 Visual Studio 2012 中生成 .h 文件以及 DLL

标签 c delphi visual-studio-2012 dll

我有一些需要在 Delphi 应用程序中使用的 C 代码。使用 cmake,我可以在 Visual Studio 2012 中生成一个解决方案,并将其编译为 DLL。我要花很长时间才能在 Delphi 中为所有函数编写所有导入单元。我可以使用一个工具将 DLL .h 文件转换为 pascal 导入单元,但 Visual Studio 没有为我提供 DLL 的 .h 文件。

那么我的选择是什么?:

  1. 我是否必须亲自从 .c 文件中取出所有 .h 文件并将它们编译成一个文件?
  2. 有没有办法让 Visual Studio 在编译期间为 DLL 生成 .h?
  3. 还有什么我可以尝试将 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/

相关文章:

delphi - 如何在delphi表单中添加注释

visual-studio-2012 - 编辑 C# 代码时 Visual Studio 2012 Ultimate 速度很慢

c++ - 使用 cmake 在调试构建期间为单个项目指定发布

php - 使用 PHP 从 C 应用程序的 STDOUT 读取数据

delphi - 如何隐藏 TVirtualStringTree 节点?

c - 分配第二个数组时出现段错误

delphi - 使用OLE和Delphi列出给定日期的所有Outlook约会

c++ - 清除 __m128i 的高位字节

C: scanf 输入单字符及校验

c - 预期错误 : ,