我的socket读事件中有:
socket.ReceiveBuf(SI,sizeof(si));
其中SI是一个数据结构,有一个类型为pchar的成员apps,
则操作:
s:=strlen( SI.apps);
或 p:=SI.apps //p已定义为pchar类型
或 Memo1.Line.SetText(SI.apps)
均报内存错误!到底如何读取呢?谢谢各位!
socket.ReceiveBuf(SI,sizeof(si));
其中SI是一个数据结构,有一个类型为pchar的成员apps,
则操作:
s:=strlen( SI.apps);
或 p:=SI.apps //p已定义为pchar类型
或 Memo1.Line.SetText(SI.apps)
均报内存错误!到底如何读取呢?谢谢各位!
解决方案 »
- 为什么拖拉添加的listitem位置都在最后
- delphi 高手帮忙改一下代码(DBGRID数据导入Excel)
- access中sql的通配符写法?急
- 如果删除一个文本文件中的空格行.....?
- 那位大侠帮我看一下,错误出在那里哟!
- ===十万火急,多线程占用CPU资源100%===
- 请教哪里有关于TServerClientThread线程创建和使用的例子(Delphi)?
- 高分求教Delphi6+ado+sql server2000安装盘的制作?
- 大家帮帮忙,AdvstringGrid.Options:=AdvstringGrid.Options-[AdvstringGrid.Select];
- 做一个类似于wingate之类的代理服务器需要那些知识,哪里有参考
- 程序退出时出错!----望赐教!
- 谁知道TRichView.v1.9.11的使用方法阿,就是要做成类似于word的文字编辑栏的超文本处理模块
因为APPS是SI结构的一个成员。
pChar指向的地址的数据没有发送出来。你要明白,pChar 是一个指针,指向了一个地址,所以在发送的数据结构缓冲区中,只是包含了这个指针的地址,而没有包含指针的实际内容,而发送整个数据结构,也只是把指针的地址发送过来,没有把指针的实际内容发送过来。
readbuffer接受试试
field1:integer;
field2:float;
apps:pChar;
end;
//这样的结构是不能发送的,发送的结果是field1,field2,发送出去,还有apps的地址发送出去了,而apps^的内容没有发送出去。你可以这样做,定义个大数组,然后按照结构的顺序把数据结构的数据写到数组里面,是流的方式,发送这个数组就可以了。
告诉搂住,碰上gzmhero(hihihi)算是找对人了
但在DELPHI中,一处理它,就会出错。我用TSTRINGS类型,也会出错。