c/c++, Windows api中,大量使用字符串,这些字符串,以字符0xx, #0, chr(0), 来作为结为标志。c/c++中称为 char *, char []。
Delphi中,使用String类型表达字符串。性能要比c/++的方法要好。但为了与以上兼容,所以也有pchar这种字符类型,表示以上所述的字符串。

解决方案 »

  1.   

    比如:var pStr:pchar;
        Str:String;
    begin
       Str:='fsdfsd';
       pStr:=@Str;
       ......
    end;
      

  2.   

    Nicrosoft,你的转换不对。应该使用
    pStr:=pchar(Str);
    或者
    pStr:=@Str[1];
      

  3.   

    Nicrosoft也有翻船的时候啊。
    Pchar就是一个指向字符串的指针!
      

  4.   

    其实,在Delphi中的PChar类型,主要是为了和C/C++语言对字符串定义的兼容,在Dephi中,最好用String来表示字符串类型。
    他们之间的转换:
    var
      pName: PChar;
      sName: string;
    begin
      sName := 'abcdefg';
      pName := PChar(sName + #0);
    end;
      

  5.   

    如果不是一定要用PChar
    就用AnsiString吧
      

  6.   

    为了与c语言的char*、win32API的LPTSTR兼容的字符串,是以#0结束的字符串(win32API只认LPTSTR声明)。