如何将记录转为字节数组? 本帖最后由 changsn 于 2012-04-17 20:23:35 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 rawtobytes糊涂了……一直都想摆脱这个函数……郁闷 buffer:TBytes;这个还未分内存,当然会有问题。需要用setlength设置一下长度 上面看错了,以为你没setlength,其实是你的CopyMemory用错了,因为TBytes其实是指错,所以你调CopyMemory时再@buffer取地址一次是不对的,改成这样:CopyMemory(Pointer(buffer),@login,SizeOf(login));其实用rawtobytes更简单,你上面的代码改成:procedure TMainForm.login; var Login:TPRLogin;//记录begin StrPCopy(login.ID,Edit.Text); Login.flag:=PSKLogin; UDP.SendBuffer(Edit1.Text,StrToInt(Edit2.Text),rawtobytes(Login,SizeOf(TPRLogin)));end; 上面“指错”应该为“指针“,打错了,恶心的csdn居然不能编辑 为什么非要转为字节数组呢,直接发送多好的呀 StrPCopy(login.ID,Edit.Text); Login.flag:=PSKLogin; UDP.SendBuffer(Edit1.Text,StrToInt(Edit2.Text),Login);这样就行了呢 UDP.SendBuffer(login,sizeof(TPRLogin)); 问个关于bmp2gif的问题 C++结构体转 delphi结构体问题 DBGRID或DBGRIDEH自动换行/拆行/分行 一个关于在delphi7里面的数据类型的问题!!!! 怎样让数据库记录的指针位于屏幕中间? 做一个类似Ping的函数,传入一个URL判断是否能Ping通,想用最少的代码,和最简单的方法得到。 用Ado数据大批量插入问题,up有分 哪里有WordVBA的参考书籍下载?十分感谢!!!!!! 怎么样做一个在线升级的程序呢?就相当于瑞星的在线更新一样升级程序? 求校验码算法 Report Machine 分组 一个7年DELPHI开发者的感悟。
一直都想摆脱这个函数……郁闷
CopyMemory(Pointer(buffer),@login,SizeOf(login));其实用rawtobytes更简单,你上面的代码改成:
procedure TMainForm.login;
var
Login:TPRLogin;//记录
begin
StrPCopy(login.ID,Edit.Text);
Login.flag:=PSKLogin;
UDP.SendBuffer(Edit1.Text,StrToInt(Edit2.Text),rawtobytes(Login,SizeOf(TPRLogin)));
end;
StrPCopy(login.ID,Edit.Text);
Login.flag:=PSKLogin;
UDP.SendBuffer(Edit1.Text,StrToInt(Edit2.Text),Login);
这样就行了呢