No, they are not idenitical.
WideString
is just a wrapper for the ActiveX/COM BSTR
type. You need it when working with with strings in ActiveX/COM.
String
in Delphi 2009 and later is an alias for UnicodeString
, which can hold Unicode characters, just like BSTR
does, but it's NOT the same as WideString
. WideString
is allocated by the COM memory manager, and is not reference counted. UnicodeString
is allocated by the RTL memory manager, and is reference counted, just like AnsiString
is.
You should use (Unicode)String
wherever possible, and only use WideString
for COM interop, or dealing with legacy libraries that use WideString
for Unicode support.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…