有没有一种工具可以为Delphi(Win32)DLL创建C头文件?

3
到目前为止,我只看到了一些工具和有关创建给定C头文件的Delphi代码的信息。这里
然而,在“Delphi first”情况下,存在Delphi接口声明和生成的DLL,而没有C头文件。是否有工具可以提取必要的信息并为DLL构建C头文件呢?
这样的工具可以在跨语言/跨平台项目中节省时间并提高效率。例如,使用C头文件,可以更轻松地自动生成Java JNA绑定代码,使用jnaerator。 工具链如下:
Delphi源 -> 创建C头文件 -> 转换为Java绑定 -> 从Java使用Delphi DLL
2个回答

7

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


1

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

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

因此,除非DLL是根据这个考虑而制作的,否则这可能会更多地起到反效果。

不过,阅读和解析Delphi头文件并不那么困难。Pascal比C更容易解析和转换。FPC(Free Pascal)有一个Pascal解析器包,用于其文档工具,可能是可重定向的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接