如何将 PAnsiChar
变量转换为 WideString
或者 string
?
您只需将一个变量分配给另一个变量,让 Delphi 编译器为您执行所有的转换:
var
p: PAnsiChar;
s: string;
w: WideString;
....
s := p;
w := p;
如果你想进行反向转换,限制讨论范围在Delphi 7中,其中Char、PChar和string均为ANSI数据类型,则应使用以下内容:
PAnsiChar(s);
PAnsiChar(AnsiString(w));
在这种情况下,进行此方向的转换时需要使用强制类型转换,对于WideString,数据必须明确从Unicode转换为ANSI,然后请求以空字符结尾的C字符串指针。
var
s: AnsiString;
w: WideString;
p: PAnsiChar;
...
s := p;
w := WideString(s);
s:PAnsiChar;
WideString(AnsiString(s));
如果您使用的是Unicode Delphi,则可能需要:
String(AnsiString(s));
function StrPas(const Str: PChar): string; begin Result := Str; end;
. - Wouter van Nifterick
W1057 隐式将 'AnsiChar' 转换为 'string'
和W1057 隐式将 'AnsiChar' 转换为 'WideString'
。 - Wouter van Nifterick