各位大哥:请问“张海航写的delphi串口通信与实现中的这一句怎么编译通不过呀?该如何解决呢?”
move(buffer^,pchar(@rbuf^),bufferlength);

解决方案 »

  1.   

    procedure TFm_Main.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    var
      Rec:PChar;
    begin
      GetMem(Rec,BufferLength+2);
      StrCopy(Rec,Buffer);
      

  2.   

    直接给你写一下吧,以下方法就能行!我就是如此使用的,祝早成功!
    procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    var
        Temp_Buff:array of byte;
    begin
        if bufferlength=0 then exit;
        SetLength(Temp_Buff,BufferLength);
        Move(Buffer^,PChar(Temp_Buff)^, BufferLength);end;
      

  3.   

    Move(Buffer^,PChar((@rbuf)^),BufferLength);
    //
    Move(Buffer^,rbuf,BufferLength);
      

  4.   

    这是我的程序中的一段:
    szRec:array[1..INPUTBUFFERSIZE] of byte;
    Move(Buffer^, szRec ,BufferLength);
    if szRec[1] = xxx thenszRec:是接收缓冲区的地址,要先分配空间.
      

  5.   

    为什么我发了数据,程序却没有响应,根本没有自动跳到Comm1ReceiveData事件中去呢?急,赠送我的全部函数包。
      

  6.   

    你必须首先正确的设定串口和波特率,如果用了其它的参数也要正确的设置,spcomm收到了数据一定会自动触发ReceiveData事件的。
      

  7.   

    我只要一连上com1口,就可以接收到00,但是就再也收不到数据了,而且我发过去的数据,对方能够收到,就是我收不到回应信息?请各位大哥指导
      

  8.   

    我想用mscomm控件向串口发送二进制数据怎么办?
      

  9.   

    TO: nitxht(我想认识你) 将二进制数转为十进制,再用CHR()发送,收到后再解码不就行了吗?
      

  10.   

    GetMem(Rec,BufferLength+2);//分配内存
      StrCopy(Rec,Buffer);//字符串拷贝