and*_*s-h 8 delphi pascal freepascal hdf5
是否可以从C头文件自动生成接口单元?特别是,我想包装HDF5库,如果我可以避免手动编写接口单元那将是很好的.
Bob Swart(Bob博士)有一个实用程序,它将转换许多头文件(尽管通常还涉及一些手工工作),称为HeaderConvert.我从未将它与工具@RRUZ链接进行比较,但它是另一种选择.
JEDI项目也有一个; 我从来没有测试过它.你可以在这里找到它.
通常,将C头完全自动转换为其他东西(这不是所需C功能的有效超集)很难实现.
这是因为由于宏,人们无法看到如何翻译它们.宏通常只从上下文中获取它们的含义.例
#define uglymacro 1,2,3,4
Run Code Online (Sandbox Code Playgroud)
而且(这个更常见):
SCARYAPIMACRO void func(int c);
Run Code Online (Sandbox Code Playgroud)
然后,SCARYAPIMACRO通常是一个宏,它测试操作系统定义为正确的操作系统/体系结构选择正确的调用约定.
尽管如此,这并不意味着工具不是真正的节省时间.但结果更半自动,我是h2pas最好和最好的经验.
我翻译了很多Windows标题(包括FPC的commctrl,每隔几行就有一个sendmessage宏).
我通常做的是制作一个小的pascal程序,扫描源代码行,并使用启发式方法将其拆分为大部分是同构的(所有结构或常量,宏,过程声明等).然后我查看来源并经常做一些全球替代品.
只有这样我才能通过翻译器运行,这个过程通常是迭代的(精炼分离,做全局替换,尝试翻译,如果失败,再试一次等).
不幸的是,这个过程需要很好地掌握C,包括pragma内容.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2361 次  |  
        
|   最近记录:  |