如何将PAnsiChar转换为WideString或string?

Lit*_*per 13 delphi delphi-7

如何将PAnsiChar变量转换为WideString或转换为string

Dav*_*nan 15

您只需将一个变量分配给另一个变量,让Delphi编译器为您完成所有转换:

var
  p: PAnsiChar;
  s: string;
  w: WideString;
....
s := p;
w := p;
Run Code Online (Sandbox Code Playgroud)

如果您想转换到另一个方向,并将讨论限制为Delphi 7,其中Char,PChar,字符串都是ANSI数据类型,您将使用以下内容:

PAnsiChar(s);
PAnsiChar(AnsiString(w));
Run Code Online (Sandbox Code Playgroud)

在朝这个方向前进时需要强制转换,而在WideString的情况下,在请求空终止的C字符串指针之前,必须将数据从Unicode显式转换为ANSI.

  • 编译器会为你做,但不是没有抱怨.如果你这样做,你将得到'W1057从'AnsiChar'到'string'的隐式字符串转换和从'AnsiChar'到'WideString'的W1057隐式字符串转换. (3认同)