我正在将我的应用程序转换为 Delphi 2009,并遇到了一些需要将字符串(宽)转换为 AnsiString 的调用的有趣问题。
这是一个示例来演示我遇到的问题:
var
s: PAnsiChar;
...
s := PAnsiChar(Application.ExeName);
对于 Delphi 2007 和以前的版本, s := PChar(Application.ExeName) 将返回应用程序 exe 路径。
使用 Delphi 2009,s := PAnsiChar(Application.ExeName) 仅返回“E”。
我的猜测是因为我正在将 unicode 字符串转换为 ansi 字符串,但我如何转换它以便 PAnsiChar 获得完整的字符串?