在Delphi 2009中,是否有一种快速而肮脏的方式将PansiChar转换为Pchar

时间:2009-07-07 21:35:20

标签: delphi unicode string delphi-2009

我有非常多的应用程序要转换为Delphi 2009,并且有许多外部接口返回pAnsiChars。有没有人有一个快速简单的方法将这些回流到pChars? pAnsiChar的字符串很多,但我可以找到很多东西。

2 个答案:

答案 0 :(得分:2)

没有办法将PAnsiChar“施放”到PChar。 PChar是Delphi 2009中的Unicode.Ansi数据不能简单地转换为Unicode,反之亦然。您必须执行实际的数据转换。如果您有一个指向某些数据的PAnsiChar指针,并希望将数据放入Unicode字符串,则首先将PAnsiChar数据分配给AnsiString,然后根据需要将AnsiString分配给Unicode字符串。同样,如果需要将Unicode字符串传递给PAnsiChar,则必须先将数据分配给AnsiString。 Embarcadero'sTeamB's博客网站上有关于Delphi 2009迁移问题的文章。

答案 1 :(得分:2)

Delphi 2009添加了一个名为RawByteString的新字符串类型。它被定义为:

type
  RawByteString = type AnsiString($ffff);

如果您需要保存以PAnsiString形式出现的二进制数据,可以使用它。您应该能够像以前使用AnsiString一样使用RawByteString。

但是,推荐的长期解决方案仍然是将程序转换为Unicode。

相关问题