将字符串转换为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。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |