我正在将我的应用程序转换为Delphi 2009,并且遇到了一些需要将字符串(宽)转换为AnsiString的调用的有趣问题.
这是一个展示我遇到的问题的例子:
var
s: PAnsiChar;
...
s := PAnsiChar(Application.ExeName);
Run Code Online (Sandbox Code Playgroud)
使用Delphi 2007和以前的版本,s:= PChar(Application.ExeName)将返回应用程序exe路径.
使用Delphi 2009,s:= PAnsiChar(Application.ExeName)仅返回'E'.
我的猜测是因为我正在将unicode字符串转换为ansi字符串,但是如何将其转换为PAnsiChar获取完整字符串?