若 buf:Array [ 0..1024] of char;
也怎么办?!

解决方案 »

  1.   

    NMUDP1.SendBuffer(buf:Array of char,length:integer);
    怎样才能将  Edit1.Text发送出去?!
      

  2.   


      strlcopy(buf,pchar(Edit1.Text),sizeof(buf)-1);  NMUDP1.SendBuffer(pchar(Edit1.Text),strlen(Edit1.Text));
      

  3.   

    Char(Edit1.Text);就行
                  
      

  4.   

    这么多的DELPHI高手们就不能邦俺一把!
      

  5.   

    NMUDP1.SendBuffer(pchar(Edit1.Text),strlen(Edit1.Text));
    总是说类型不兼容:  var  s:array[1..1024] of char;
           s:='12345';  // 错,例子中的也错若下标改成0:
      var  s:array[0..1024] of char;
           s:='123';    // 对
           s:=pchar(Edit1.Text);  // 不兼容
      

  6.   


    string:
    buf :string;Length(buf)pchar:
    buf:array[0..100] of char;
    strlen(buf);strlcopy(buf,pchar(Edit1.Text),sizeof(buf)-1);  NMUDP1.SendBuffer(pchar(Edit1.Text),length(Edit1.Text)); //上面的错了
      

  7.   


    bcb兄:好了吗?:-)
      

  8.   

    var
      buf:Array[1..1024] of char;
      str: string;
    ...
      FillChar(buf[1], SizeOf(buf), #0);
      Str := Edit1.Text;
      Move(str[1], buf[1], Length(str));
    ...
      

  9.   

    var buf:Array[1..1024] of char;
    pTmp : pchar;
    begin
          pTmp := @buf;      strlcopy(pTmp,pchar(Edit1.Text),sizeof(buf)-1);
      

  10.   

    一:   Array of char的下标从0开始,还是从 1 开始?!
    二:   为什么Array of Char与string没有直接的转换办法?
          设计TNMUDP时为什么会用Array of char ?
      

  11.   

    1.string 长度为255,string[0]为长度;
    2.如果你定义str: array[1..1024] of char,下标从1开始,
    在如果 array[2.1024] of char ,你说下标从什么地方开始?:)
    3.如果要转换不等长的array 和 string ,会有损失
      

  12.   

    用strpcopy与strlcopy都可
    TNMUDP的例子中是buf:Array[1..3] of char,看样子不行,下标要从开始;
    buf:array[0..1024] of char与pchar 能不能直接强制转换类型?!
      

  13.   

    buf:array[0..1024] of char与Pchar 能不能直接强制转换类型?!
    在C语言,这两种类型是完全兼容的,delphi行不行;
        PChar(Edit.Text) 为什么不能直接当成Array[0..1024] of char ?    
      

  14.   

    buf:array[0..1024] of char与Pchar 能不能直接强制转换类型?!
      

  15.   


       我觉得,pchar 更多的是 提供了一个string (delphi封装字符串)到array   of char(c风格字符串),转换的工具,array[0..1024] 与pchar,没必要去转换。
      

  16.   

    我学DELPHI两天,有点入门了,
    Array of char 与Pchar的关系有点清楚了:
        1.与C语言不太一样,两者在C中是完全相容的;
          但Delphi的Array of char比PChar复杂一点,
          前者可以当成PChar,但后者PChar不能当成前者;因为
          Array of char在实现时,比PChar要多几个字节,
          标明数组的长度,相当于  (pchar,buffer_len)
          就就是为什么TNMUDP.SendBuffer(Array of char,integer);
    到了C++Builder就变成了三个参数了:
                     TNMUDP::SendBuffer(char *,int,int)
            多出一个int参数了,其实就是数组长度;    2.NMUDP选Array of char做参数是对的,缓冲区不仅  
          仅存放字符,所以不选PChar或AnsiString做参数;      
      

  17.   

      C++Builder也只有2个参数阿:
            SendBuffer(Buff: array of char; length: integer);  
      

  18.   

    C++BUILDER的TNMUDP的邦助是从DELPHI中直接拿过去了的,所以,还是两个参数,
    可在BCB中用这个函数时,自动跳出的参数是: 
          (const char *,int buffer_len ,int length)
    明白了?!
          DELPHI的数组跟C++的数组实现有点差别,C++中对数组的长度不做任何传递
    或检查,而DELPHI的数组地址中,前几个字节是数组地址,后4个字节是数组长度,所
    以可以猜到,DELPHI数组作为过程参数时,数组的长度仍传递过去,而C做不到
      

  19.   

    to icuc88(爱猫的笨鱼) :
       string,缺省是AnsiString,是长串;