delphi - WideString 与 Delphi 2009 中的 String 相同吗

标签 delphi unicode delphi-2009

我在 2009 年重新编译一些在不同点使用宽字符串的应用程序时遇到了一些奇怪的行为。

在 Delphi 2009 应用程序中,Widestring 与 String 相同吗?

最佳答案

不,它们并不相同。

WideString 只是 ActiveX/COM BSTR 类型的包装器。在 ActiveX/COM 中处理字符串时需要它。

Delphi 2009 及更高版本中的

StringUnicodeString 的别名,它可以保存 Unicode 字符,就像 BSTR 一样,但它不是与 WideString 相同。 WideString 由 COM 内存管理器分配,并且不进行引用计数。 UnicodeString 由 RTL 内存管理器分配,并进行引用计数,就像 AnsiString 一样。

您应尽可能使用 (Unicode)String,并且仅将 WideString 用于 COM 互操作,或处理使用 WideString 的旧库用于 Unicode 支持。

关于delphi - WideString 与 Delphi 2009 中的 String 相同吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/374446/

相关文章:

delphi - 如何在Delphi中向另一个exe添加版本信息?

delphi - Delphi 2009升级问题

delphi - DelphiXE 中的异常位置未正确定位在调试器中?

ruby - 按字素拆分 Unicode 实体

android - 白色 Unicode PLAY 按钮在 Android 4 和 5 上呈灰色

python - Unicode解码错误: cp932 codec can't decode byte 0x81 in position 81

Delphi 2009 在 RAD Studio 命令提示符中使用 MSBuild F1026 文件未找到

Delphi 2010 宽函数与字符串函数

windows - 在 Delphi 应用程序的图标上动态插入数字

delphi - 我可以指示 Delphi 编译器查找后缀不是 '.PAS' 的单元文件吗?