1、String到PChar
var
pc:PChar;
s:String;
....
pc:=StrAlloc(1000);
StrPCopy(pc,s);
StrDispose(pc);
如果只是作为函数的参数的话,直接使用类型转换就行了 pc:=PChar(s);2、PChar到String
s:=String(pc);
var
pc:PChar;
s:String;
....
pc:=StrAlloc(1000);
StrPCopy(pc,s);
StrDispose(pc);
如果只是作为函数的参数的话,直接使用类型转换就行了 pc:=PChar(s);2、PChar到String
s:=String(pc);
pc:PChar;
s:String; pc:=pchar(s);
s:=pc;
若String中有#0呢?
通常情况下pchar 和string 可以通用,我们需要考虑的只是通过语法检查,有的参数类型要pchar,强制转化以下就ok了.
string 本来就是#0结尾。
除了尾#0
举个例子看看吧:
e.g.
var
str:string;
begin
SetLength(str,100);
GetWindowText(Handle,PChar(str),Length(str));//这是转换了
//str:=str+'is the title';//如果这样写,再STR中你看不到后面的‘IS THE TITLE’字符川
str:=string(PChar(str));//STR是STRING类型的,转换回自己是无效的,注意了
str:=str+'is the title';
end;