我有非常多的应用程序要转换为Delphi 2009,并且有许多外部接口返回pAnsiChars。有没有人有一个快速简单的方法将这些回流到pChars? pAnsiChar的字符串很多,但我可以找到很多东西。
答案 0 :(得分:2)
没有办法将PAnsiChar“施放”到PChar。 PChar是Delphi 2009中的Unicode.Ansi数据不能简单地转换为Unicode,反之亦然。您必须执行实际的数据转换。如果您有一个指向某些数据的PAnsiChar指针,并希望将数据放入Unicode字符串,则首先将PAnsiChar数据分配给AnsiString,然后根据需要将AnsiString分配给Unicode字符串。同样,如果需要将Unicode字符串传递给PAnsiChar,则必须先将数据分配给AnsiString。 Embarcadero's和TeamB's博客网站上有关于Delphi 2009迁移问题的文章。
答案 1 :(得分:2)
Delphi 2009添加了一个名为RawByteString的新字符串类型。它被定义为:
type
RawByteString = type AnsiString($ffff);
如果您需要保存以PAnsiString形式出现的二进制数据,可以使用它。您应该能够像以前使用AnsiString一样使用RawByteString。
但是,推荐的长期解决方案仍然是将程序转换为Unicode。