gpt4 book ai didi

delphi - 在 Delphi 2009 中将字符串转换为 PAnsiChar

转载 作者:行者123 更新时间:2023-12-03 14:34:10 25 4
gpt4 key购买 nike

我正在将应用程序转换为 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 获得完整的字符串?

最佳答案

我这里没有Delphi 2009,所以无法检查。但也许你必须尝试:

s := PAnsiChar(AnsiString(Application.ExeName));

正如 gabr 已经指出的那样,这不是一个很好的做法,只有在 100% 确定的情况下才会使用它。该字符串仅包含直接映射到 ANSI 范围的字符。

这就是为什么您应该收到警告,因为您正在将 Unicode 转换为 ANSI。

关于delphi - 在 Delphi 2009 中将字符串转换为 PAnsiChar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/283759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com