历史经验之VC的union转DELPHI的结构用法总结

整理日期: 2009年8月18日

VC的union转DELPHI的结构用法总结
作者:7658229@qq.com
日期:2009-8-18
/
VC的结构如下:
struct {
UCHAR a1;
UCHAR a2;
}STRU_A, *PSTRU_A;

#pragma pack(1)
struct {
USHORT b1;
USHORT b2;
ULONG b3;
char szStr[100];
}STRU_B, *PSTRU_B;
#pragma pack()

struct {
union {
STRU_A sa;
STRU_B sb;
};
}TEST_STRU;
/

转为DELPHI后如下:
type
UCHAR = BYTE;
USHORT = WORD;
ULONG= Cardinal;

STRU_A = record
a1: UCHAR;
a2: UCHAR;
end;
PSTRU_A = ^STRU_A;

STRU_B = packed record
b1: USHORT;
b2: USHORT;
b3: ULONG;
szStr: array[0…99] of char;
end;
PSTRU_B = ^STRU_B;

TEST_STRU = record
sb: STRU_B; //含union的结构取VC中结构较大的那个
end;

如何使用:
var ts: TEST_STRU;
1:直接访问最大的那个结构
ts.b1 := 10;
ts.b2 := 20;
2: 间接访问较小的其他结构
PSTRU_A(@ts.sb)^.a1 := 10;
PSTRU_A(@ts.sb)^.a2 := 20;

/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值