Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
740 views
in Technique[技术] by (71.8m points)

unicode - Is WideString identical to String in Delphi 2009

I'm getting some weird behaviour recompiling some applications in 2009 that used widestrings at various points.

In a Delphi 2009 App is Widestring identical to String?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...