读书人

将以上C语言代码转化成delphi语言的

发布时间: 2013-01-04 10:04:18 作者: rapoo

求助:将以下C语言代码转化成delphi语言的
本帖最后由 wuwenzhe 于 2012-12-03 13:26:49 编辑


typedef union
{
u32 value;
struct
{
u32 seconds :6;
u32 minutes :6;
u32 hours :5;
u32 days :15; // from 01/01/2000
} info;
} t32_date_time;


转化成为

TT32_date_time = packed record
case Byte of
0: (Value: DWORD);
1: (Info: ……);


我不知道在delphi里怎么对位定义类型了?
[解决办法]
delphi没办法这样定义,只能这样

TT32_date_time = packed record
value : dword;
data : dword;
end;

然后用函数读写,例如:
function Get_seconds(v : TT32_date_time) : integer;
begin
result := v.data shr 26;
end;

function Get_minutes(v : TT32_date_time) : integer;
begin
result := v.data shl 6 shr 20;
end;

procedure Set_minutes(v : TT32_date_time; m : integer);
begin
v.data := (v.data and $FC0FFFFF) + m shl 20;
end;

读书人网 >.NET

热点推荐