为什么这么作不行?(100分)

  • 主题发起人 主题发起人 RoninHao
  • 开始时间 开始时间
R

RoninHao

Unregistered / Unconfirmed
GUEST, unregistred user!
一个UMUDP控件,我用来接受信息,但是我的信息是个结构体,我是如下这样用:
SockDm.UDPLog.ReadBuffer(logs,sizeof(logs)); (logs为一结构体)
为什么在TCP通信中的ReadBuffer可以直接用结构体,而这里不行?难道非得用数组码?
另外一个问题,我的TLogs结构体为一变体类型,如下定义:
Tlogs = record;
case nflag : interger of
1 : (fwlogs : TFwlow);
2 : (idslogs : TIdslog);
end;
那么我计算sizeof(Tlogs)的时候返回值是多少?
 
//那么我计算sizeof(Tlogs)的时候返回值是多少?
Max(SizeOf(TFwlow), SizeOf(TIdslog));
 
谢谢,第一个问题有人能回答一下么?
 
你的 logs 声明是否正确?
现在出现什么问题?
 
在下面这一句
SockDm.UDPLog.ReadBuffer(logs,sizeof(logs));

imcompatible types : 'Array' and 'TLogs'
 
声明一个 array 来接受数据
使用时进行类型转换 TLogs(x)
 
还有人有意见么?
 
多人接受答案了。
 
后退
顶部