加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

将字符串转换为Delphi 2009中的PAnsiChar

发布时间:2020-12-15 10:14:46 所属栏目:大数据 来源:网络整理
导读:我正在将我的应用程序转换为Delphi 2009,并且需要将一个字符串(宽)转换为AnsiString的一些调用面临一个有趣的问题。 以下是一个示例来说明我遇到的问题: var s: PAnsiChar;...s := PAnsiChar(Application.ExeName); 使用Delphi 2007和以前的版本,s:= PCh
我正在将我的应用程序转换为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获取完整的字符串?

解决方法

我在这里没有德尔福2009,所以我不能检查。但也许你必须尝试:
s := PAnsiChar(AnsiString(Application.ExeName));

正如gabr已经指出的那样,这不是一个很好的做法,只有当你100%确定时才使用它,字符串只包含与ansi范围直接映射的字符。

这就是为什么你应该得到一个警告,因为你将Unicode转换为Ansi。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读