【问题标题】:Is there a tool which creates C header files for Delphi (Win32) DLLs?是否有为 Delphi (Win32) DLL 创建 C 头文件的工具?
【发布时间】:2009-07-30 10:02:48
【问题描述】:

到目前为止,我只看到了tools 和一些有关为给定 C 头文件创建 Delphi 代码的信息。

但是,在“Delphi first”的情况下,有一个 Delphi 接口声明和一个生成的 DLL,并且没有 C 头文件。是否有工具可以提取必要的信息并为 DLL 构建 C 头文件?

这样的工具在跨语言/跨平台项目中可能会有所帮助并节省时间。例如,使用 C 头文件,使用jnaerator 自动创建 Java JNA 绑定代码会更容易。工具链如下所示:

Delphi 源代码 -> 创建 C 头文件 -> 转换为 Java 绑定 -> 从 Java 中使用 Delphi DLL

【问题讨论】:

    标签: java c delphi dll jna


    【解决方案1】:

    Delphi 自己的编译器可以使用 -JPHNE 参数从 .pas 文件中输出 C/C++ 头文件。

    【讨论】:

      【解决方案2】:

      虽然这在理论上可行,但许多 Delphi DLL 将使用诸如寄存器之类的调用约定,不要以标准 C 方式打包记录等。然后还有 RTL 问题、协处理器状态字问题等。

      可能大多数 C 编译器可以通过添加一些 pragma 来解决这个问题,但我怀疑整个 Java 绑定的东西会吃掉它。

      因此,除非在设计 DLL 时考虑到这一点,否则这可能会更频繁地工作。

      不过,读取和解析 Delphi 标头并不难。 Pascal 比 e.g. 更容易解析和转换。 C. FPC (Free Pascal) 有一个 pascal 解析器包,用于其文档工具,可能是可重定向的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        • 1970-01-01
        • 2011-07-13
        • 2011-08-26
        • 1970-01-01
        相关资源
        最近更新 更多