将C结构迁移到Delphi记录

时间:2012-01-27 04:56:13

标签: c delphi data-structures struct record

我想知道如何将 C struct转换为Delphi记录

以下代码在C中。我想转换为Delphi。

typedef struct
  {
  Uint16        value1[32];
  Uint16        value2[22];
  Uint16        value3[8];    
  }MY_STRUCT_1;

提前致谢。

2 个答案:

答案 0 :(得分:12)

Uint16等同于Word类型,[]表示数组。

MY_STRUCT_1 = record
  value1 : Array [0..31] of Word;
  value2 : Array [0..21] of Word;
  value3 : Array [0..7] of Word;
end;

答案 1 :(得分:3)

您可能需要使用压缩关键字。默认情况下,Delphi将基于(我相信)对齐变量,无论您是在16位,32位还是64位平台上进行开发,以及您的记录中包含哪些数据类型。使用packed会改变保存记录所需的内存长度/大小。 C将默认打包结构。

MY_STRUCT_1 = packed record
  value1 : Array [0..31] of Word;
  value2 : Array [0..21] of Word;
  value3 : Array [0..7] of Word;
end;

另见: http://www.delphibasics.co.uk/RTL.asp?Name=Packed