当前位置:  开发笔记 > 开发工具 > 正文

WideString与Delphi 2009中的String相同

如何解决《WideString与Delphi2009中的String相同》经验,为你挑选了3个好方法。

我在2009年重新编译了一些在不同点使用宽带的应用程序.

在Delphi 2009 App中,Widestring与String相同吗?



1> Roddy..:

不,他们不是非政治性的.

WideString只是ActiveX/COM BSTR类型的包装器.在ActiveX/COM中使用字符串时需要它.

String在Delphi 2009及更高版本中是一个别名UnicodeString,它可以保存Unicode字符,就像BSTR它一样,但它不一样WideString.WideString由COM内存管理器分配,不参考计数. UnicodeString由RTL内存管理器分配,并且被引用计数,就像AnsiString是.

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



2> haggai_e..:

似乎答案在这里:

Delphi 2009中最引人注目的变化是"string"类型现在是UnicodeString的别名而不是AnsiString.



3> lkessler..:

另一个需要注意的重要事项是性能差异.

在Marco Cantu的白皮书(在moodforaday的答案中提到)说:

"WideString是(现在仍然)没有引用计数,在性能和灵活性方面极差(例如,它使用Windows全局内存分配器而不是本机FastMM4)."

几乎所有Delphi 2009的升级指南我都建议您将所有WideStrings转换为字符串.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有