procedure Getdata(PBUF:Pointer;iLen:DWORD);stdcall;
begin
  如何将 pbuf   ilen 发送出去?
  sendto(.....);
end;接收以后作为以下函数的参数:
function Setdata(bBuf:Pbyte,dlen:Dword):Dword;
begin
   
end;

解决方案 »

  1.   

    TSendData = packed record
    Cmd:string;
    Sendbuf:PByte;
    SendLen:DWORD;
    end;需要用这样格式发送与接收该如何处理?
      

  2.   

    不知道你的发送是什么意思
    用消息发送还是函数传递?
    是dll传给调用者,还是调用者创给dll
      

  3.   

    procedure Getdata(pbuf:Pointer;iLen:DWORD);stdcall; //dll里面的函数
    begin
      现在将:pbuf、ilen   发送出去
      发送格式:
              TSendData   =   packed   record 
             Cmd:string; 
             Sendbuf:PByte; 
             SendLen:DWORD; 
    end;UDP 发送  Sendto(...)接收以后把    sendbuf、sendlen
    传给别一个 dll 函数:Setdata(bBuf:Pbyte,dlen:Dword)
      

  4.   

    明白你的意思了
    嗨,不知道说什么了,汗!
    你是在网络上传数据,它必须是两台计算机之间的通信,传指针有什么用!!!你要传数据到另一台计算机的话,必须建立一个自定义的通信格式
    按自定义的格式发送,然后也按自定义的格式重组数据。。反正网络只能传递字节流,比如一个SendLen:DWORD;  的数据,你必须拆成四个字节,然后发送,接受后再把四个字节重组
      

  5.   

    var
      m_Buf: array[0..511] of byte;
      m_Data: TSendData;
    begin
      //填充数据
      m_Data.Cmd:= '';
      m_Data.SendBuf:= ..;
      m_Data.SendLen:= ..;  ZeroMemory(m_Buf, 512);                //清空缓冲
      Move(m_Data, m_Buf, SizeOf(m_Data));   //将数据复制到缓冲区
      ...
    end;//建议不要用这种结构体:
    TSendData = packed record   
      Cmd:string;   
      Sendbuf:PByte;   
      SendLen:DWORD;   
    end;//建议的方式:
    TSendCommand = (scData, sc....);    //定义一组发送命令枚举类型
    TSendData = packed record
      CMD    : TSendCommand;            //命令字
      SendLen: DWORD;                   //长度
      SendBuf: array[0..511] of byte;   //发送内容
    end;
      

  6.   

    接收到数据后如何再将 SendBuf 转为指针?
      

  7.   

    一意孤行 说得很明白了
    TSendCommand   =   (scData,   sc....);         //定义一组发送命令枚举类型 
    TSendData   =   packed   record 
        CMD         :   TSendCommand;                         //命令字 
        SendLen:   DWORD;                                       //长度 
        SendBuf:   array[0..511]   of   byte;       //发送内容 
    end;只是数据太长时, SendBuf 不能定义成固定数组。不然有效数据太少了