我定义了一个结构体
type
login = packed record
pass_content : array of AnsiChar;
size1 : array[0..3] of Byte;
pass_content 是动态的,我需要的时候给它赋长度。现在的问题是,我把值赋进去了。
但是用RawToBytes取的话,取的始终是一个地址,调试的时候可以看到值,我怎么才能从pass_content的地址取出值来。
希望高人解答啊,感激不尽。
procedure sendLogin;
var
log1 : login;
send_sidbyte : TIdBytes;
ss: string;
begin
ss := '123456';
FillChar(log1, SizeOf(log1), Ord(''));
SetLength(log1.pass_content,6);
log1.size1[0]:= 15;
StrpCopy(PAnsiChar(log1.pass_content),ss); Move(log1.size1,bufRecv[0],4);
Move(log1.pass_content,bufRecv[4],6);
send_sidbyte := RawToBytes(log1,SizeOf(log1));
end;
type
login = packed record
pass_content : array of AnsiChar;
size1 : array[0..3] of Byte;
pass_content 是动态的,我需要的时候给它赋长度。现在的问题是,我把值赋进去了。
但是用RawToBytes取的话,取的始终是一个地址,调试的时候可以看到值,我怎么才能从pass_content的地址取出值来。
希望高人解答啊,感激不尽。
procedure sendLogin;
var
log1 : login;
send_sidbyte : TIdBytes;
ss: string;
begin
ss := '123456';
FillChar(log1, SizeOf(log1), Ord(''));
SetLength(log1.pass_content,6);
log1.size1[0]:= 15;
StrpCopy(PAnsiChar(log1.pass_content),ss); Move(log1.size1,bufRecv[0],4);
Move(log1.pass_content,bufRecv[4],6);
send_sidbyte := RawToBytes(log1,SizeOf(log1));
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货