求助:将以下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;