C 在Visual Studio 2012中与DLL一起生成.h文件

C 在Visual Studio 2012中与DLL一起生成.h文件,c,delphi,visual-studio-2012,dll,C,Delphi,Visual Studio 2012,Dll,我有一些C代码需要在Delphi应用程序中使用。使用cmake,我可以在Visual Studio 2012中生成一个解决方案,将其编译成DLL。对于我来说,用Delphi为所有函数编写所有导入单元将花费永远和一天的时间。我可以使用一个工具将DLL.h文件转换为pascal导入单位,但Visual Studio没有为我提供DLL的.h文件 那么我有什么选择呢 我必须从.c文件中获取所有的.h文件,然后自己编译成一个文件吗 有没有办法让Visual Studio在编译期间为DLL生成一个.h 我还

我有一些C代码需要在Delphi应用程序中使用。使用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文件都有.h文件,但要将它们编译在一起并使它们适应DLL的工作将是一项任务。有没有办法将代码编译成Delphi导入组件向导可以理解的东西?我想我已经回答了这个问题。感觉好像你没有读到答案。你想要一个头文件做什么?德尔福打算用它做什么?你需要调用多少函数?如果你问这个问题的时候就开始工作的话,你现在肯定已经完成了。我可以继续用手来做,但是有很多功能,大概有100个或更多。此外,还有许多复杂的数据类型也需要转换。这里没有任何快捷方式。