PChar是以0结束的,所以在转换过程中,老是自动截断,不能完整的传达一个string类型.如何把含有#0的String类型或Char数组转换成PChar如:
str:='#$12#0#$12#0#$12';
用以下函数转换时自动截取值为'#$12'
PChar
StrPCopy

解决方案 »

  1.   

    0表示字符串结束了,所以后面的就忽略了.
    所以你还是传递长度+pbyte之类的好一些.
      

  2.   

    还是用 array 吧.比如:array of char.var 
      charArr:array of char;
      len:integer;
      str:string;
    begin
     str:=#$12#0#$12#0#$12; //这儿实在看不懂,如果是用单引号包起来,这个字符串就会没有#0结束符了.....
     setlength(charArr,length(str));
     Move(@str[1],charArr[0],length(str);//这儿就会得到chararr内容为#18,#0,#18,#0,#18
     
    end;
      
      

  3.   

    呵~~,更正一下.Move(str[1],charArr[0],length(str);//这儿就会得到chararr内容为#18,#0,#18,#0,#18