gpt4 book ai didi

delphi - WideChar 和 AnsiChar 有什么区别?

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

我正在将一些古老的(从 2003 年开始)Delphi 代码升级到 Delphi Architect XE,但遇到了一些问题。我收到许多存在不兼容类型的错误。这些错误在 Delphi 6 中不会发生,所以我必须假设这是因为事情已经升级了。

老实说,我不知道 PAnsiChar 和 PWideChar 之间有什么区别,但 Delphi 肯定知道区别并且不会让我编译。如果我知道差异是什么,也许我可以弄清楚使用哪个或如何解决这个问题。

最佳答案

简而言之:在 Delphi 2009 之前,Delphi 中的 native 字符串类型曾经是 ANSI CHAR:每个字符串中的每个字符都表示为 8 位字符。从 Delphi 2009 开始,Delphi 的字符串变成了 UNICODE,使用 UTF-16 表示法:现在基本的 Char 使用 16 位数据(2 个字节),您可能不需要了解太多关于表示为两个的 Unicode 代码点连续的 16 位字符。

8 位字符称为“Ansi Chars”。 PAnsiChar 是一个指向 8 位字符的指针。16 位字符称为“宽字符”。 PWideChar 是指向 16 位字符的指针。Delphi 知道其中的区别,如果它不允许您混合两者,它也会做得很好!

更多信息

这里有一个关于 Unicode 的热门链接:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets

您可以在此处找到有关将 Delphi 迁移到 Unicode 的更多信息:New White Paper: Delphi Unicode Migration for Mere Mortals

您还可以搜索“Delphi Unicode 迁移”。

关于delphi - WideChar 和 AnsiChar 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939854/

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