我写的一个程序里产生了一个带有#0的PCHAR字符串,可是在这个函数运算结束开始赋值时,这个字符串的内容就变了,在C++里可以定义无符号字符型来规避它,可是在Delohi中应该怎样做才可以让字符串的内容原封不动的保留下来呢???

解决方案 »

  1.   

    补充一下:
    例如:
    字符串 Value := '243123$^%$# #0 #0'
    函数在将Value 的值赋给一个Pchar 或String的变量后,值就变了,要么是#0被去掉了,要么就多了很多不知道是什么的字符!
    就是这样,我希望Value的值无论如何赋值都保持不变
     
      

  2.   

    不好意思, 借你的地方用一下,delphi高手们,你们好!我是一位delphi初学者,     希望各位指点小弟一下,     
    小弟在此谢过啦,  
                       小弟的邮箱是:   [email protected]
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s1,s2:String;
    begin
      s1:='243123$^%$# #0 #0';
      s2:=s1;
      showmessage(s1);
      showmessage(s2);
    end;
    实验表明,s1和s2的直没有变!
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s1:String;
      s2:Pchar;
    begin
      s1:='243123$^%$# #0 #0';
      s2:=pchar(s1);
      showmessage(s1);
      showmessage(s2);
    end;实验再次表明,把s1(sting类型)复制给s2(pchar类型)时也没有变啊!
      

  5.   

    再次补充:
    例如:function Func() : PCHAR;
          begin
             ...
             Result := '1237368 *&^%^* #0#0';
             ...
          end;
          String AValue := Func();
          值就变了!
      

  6.   

    我也奇怪  。 to : supermanzd(雷帝-因陀罗)   
         我用你的上面的函数,也没变的
      

  7.   

    如果是 Value := '243123$^%$#'#0 #0
    那我觉得会有变化,但如是 Value := '243123$^%$# #0 #0'
    我觉得没问题的!