最近在用SPCOMM控件做应用,有个onreceivedata的事件声明如下:
procedure Tfrmmain.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);
网上流传的做法是
Move(Buffer^,PChar(S)^,BufferLength);
其中S是个string的变量,虽按此法已完成任务,但对其用法却是不解.
分析其参数buffer为指针,bufferlength为长度
照理说用指针应如下操作
var p:pointer;
p:=@buffer
showmessage(^p)
为什么网上用的是move呢.求教高人指点
procedure Tfrmmain.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);
网上流传的做法是
Move(Buffer^,PChar(S)^,BufferLength);
其中S是个string的变量,虽按此法已完成任务,但对其用法却是不解.
分析其参数buffer为指针,bufferlength为长度
照理说用指针应如下操作
var p:pointer;
p:=@buffer
showmessage(^p)
为什么网上用的是move呢.求教高人指点
看看,move的函数实现,其实就是拷贝内容的。
这个函数的确比较好用。你的那种处理,是指针赋值了,没有对数据进行什么处理,跟move处理的不一样。