h2pas

H2PAS - Free Pascal C 头转换器。

下面是 h2pas 帮助。如果安装了帮助,则可以使用 man 命令查看它们。



h2pas(1)     Free Pascal C 头转换工具     h2pas(1)


名称
       h2pas - C 头到 pascal 单元转换程序。


简介
       h2pas [options] filename


说明
       h2pas  尝试将 C 头文件转换为 pascal 单元。
       它可以从大多数在 C 头文件中找到结构,并尝试将其转换为 pascal 对应的结构。
       有关转换程序可以处理内容的完整说明,请参见结构部分。


用法
       H2pas 是将 C 头文件转换为 pascal 单元的命令行工具。
       它读取 C 头文件,并将 C 声明转换为等效的 Pascal 声明,这些声明可用于访问用 C 编写的代码。

       h2pas 程序的输出将写入与 C 头文件同名的文件中。用作输入,但扩展名为 .pp。
       h2pas 创建的输出文件可以通过选项以多种方式自定义。


选项
       h2pas 输出可以通过以下选项控制:



       -d     use external;  用于所有过程和函数声明。

       -D     use external 库名 'func_name' 用于函数和过程声明。

       -e     为 C enum 构造函数发出一系列常量而不是枚举类型。

       -i     创建一个引入文件而不是单元(忽略单元头)。

       -l libname
              指定外部函数声明的库名。

       -o outfile
              指定输出文件名。默认值为输入文件名,其扩展名由 .pp  代替。



FreePascal                 1999年12月12日                          1





h2pas(1)     Free Pascal C 头转换工具     h2pas(1)


       -p     指针类型参数前面使用字母P代替 "^"。

       -s     从输入文件中删除注释。默认情况下,注释会被转换,
               但是注释可能会被替换,因为注释是由扫描程序处理的。

       -t     在 typedef 类型名称前加上字母 T(用于遵循 Borland 的约定,所有类型都应使用 T 定义)。

       -v     通过引用参数调用来替换指针参数。
               请谨慎使用,因为某些调用可能会是 NIL 指针。

       -w     头文件是 win32 头文件(增加了对某些特殊宏的支持)。

       -x     处理 PalmOS 头文件的 SYS_TRAP。


结构
       可以识别以下 C 声明和语句:


       defines
              如果是简单的定义,则将其更改为 Pascal 常数。宏已更改-尽可能更改功能;
              但是参数都是整数,因此必须手动更改。大多数算术运算符都可以识别定义阶段中的简单表达式:
              加,减,乘,除,逻辑运算符,比较运算符,移位运算符。
              还可以识别 C 构造(A ? B : C)并使用 IF 语句将其翻译为 pascal 构造(但是,这是错误的)。


       preprocessor statements
              条件预处理命令将被识别并转换为等效的 pascal 编译器指令。
              特殊的 #ifdef __cplusplus 也将被识别并删除。



       typedef
              将 typedef 语句更改为 pascal 类型语句。可以识别以下基本类型:




FreePascal                 1999年12月12日                          2





h2pas(1)     Free Pascal C 头转换工具     h2pas(1)


              char   替换为 char。

              float  替换为 real (= double 在 free pascal)。

              int    替换为 longint。

              long   替换为 longint。

              long int
                     替换为 longint。

              short  更改为 integer。

              unsigned
                     替换为 cardinal。

              unsigned char
                     替换为 byte。

              unsigned int
                     替换为 cardinal。

              unsigned long int
                     替换为 cardinal。

              unsigned short
                     替换为 word。

              void   忽略。
       如果这些类型出现在函数或过程的参数中,则它们也会被替换。

       functions and procedures
              函数和过程也需要转换;可以使用 -p 命令行参数将指针类型更改为通过引用参数
              (使用 var 参数)进行调用。
              具有可变数量参数的函数将更改为带有 const 参数数组的函数。

       specifiers
              extern 标识符被识别;但是它被忽略了。
              packed 标识符可以通过 PACKRECORDS 指令进行识别和更改。
              const 标识符也可以识别,但是会被忽略。


       modifiers
              如果指定了 -w 选项,则可以识别以下标识符:
              win32 标头中定义的 STDCALLCDECLCALLBACKPASCALWINAPIAPIENTRYWINGDIAPI。
              如果另外指定了 -x 选项,则还将识别 SYS_TRAP 标识符。



FreePascal                 1999年12月12日                          3





h2pas(1)     Free Pascal C 头转换工具     h2pas(1)


       enums  枚举构造更改为枚举类型;请记住,在 C 中,枚举类型可以为其分配值;
               Free Pascal 也可以在一定程度上做到这一点。
               如果知道将值分配给枚举,则最好使用 -e 选项将枚举更改为一系列整数常量。


       unions unions 替换为 variant records。


       structs
              C 包结构被替换为 pascal 记录。




相关
              ppc386(1) ppumove(1)





































FreePascal                 1999年12月12日                          4