我写了以上的程序代码,但在编译时会出错,请问错在什么地方。
var
  FCOMM: TFCOMM;
  viewstring:string;
   i:integer;
   rbuf,sbuf:array[1..6] of byte;
procedure TFCOMM.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
i:integer;
begin
   viewstring:='';
     move(buffer^,pchar(@rbuf^),bufferlength);
   for i:=1 to bufferlength do
   viewstring:=viewstring+inttohex(rbuf[i],2)+'';
   viewstring:='接收'+viewstring;
   memo1.lines.add(viewstring);
   memo1.lines.add('');
end;出现的错误提示是move(buffer^,pchar(@rbuf^),bufferlength);这一命令行error:ponter type required

解决方案 »

  1.   

    move(buffer^,pchar(@rbuf^),bufferlength);???
    pchar(@rbuf^)???
      

  2.   

    move(buffer^,pchar(@rbuf),bufferlength);???
      

  3.   

    感觉是中间有问题
    pchar(@rbuf^),
      

  4.   

    move(pchar(buffer),pchar(@rbuf[0])^,bufferlength);
      

  5.   

    楼主是从网上找的代码吧?呵呵move(buffer,rbuf,bufferlength);就可以了。
      

  6.   

    move(Buffer^,pchar(@rbuf)^,bufferlength);
      

  7.   

    Move(Buffer^, pchar(@rbuf)^, BufferLength);
    这样是对的,我已经测试通过
      

  8.   

    何必那么麻烦,这样就可以了。move(buffer^, rbuf[0], bufferlength);
      

  9.   

    我说种方法会比你的那种会好些。
    在DataReceiveHandler中处理收到的数据:for i:=0 to bufferlength do
     SendMessage(Memo1.handle, WM_CHAR, word(buffer[i]), 0);
      

  10.   

    move(buffer,rbuf,bufferlength);就可以了。
    我做过一个铁路仪表的软件,就是这样的
      

  11.   

    move(buffer^,pchar(@rbuf^),bufferlength);
    你从网上吵得把?
    应该先去看看 @he ^的意思~~
    @buf^是什么意思?和buf一样了,pchar(@buf)^就可以了
      

  12.   

    move(Buffer^,pchar(@rbuf)^,bufferlength);