我在2009年重新编译某些在各个点使用宽字符串的应用程序时出现了一些奇怪的行为。

在Delphi 2009 App中,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/

10-11 21:07