我在2009年重新编译某些在各个点使用宽字符串的应用程序时出现了一些奇怪的行为。
在Delphi 2009 App中,Widestring与String相同吗?
最佳答案
不,它们不是意识形态的。WideString
只是ActiveX / COM BSTR
类型的包装。在ActiveX / COM中使用字符串时,需要使用它。
Delphi 2009及更高版本中的String
是UnicodeString
的别名,它可以容纳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/