2008-12-17 49 views

回答

26

不,他們不是認同的。

WideString只是ActiveX/COM BSTR類型的包裝。在使用ActiveX/COM中的字符串時,您需要它。

德爾福2009年String,後來是UnicodeString一個別名,可容納Unicode字符,就像BSTR做,但它是不一樣的WideStringWideString由COM存儲器管理器分配,而不是引用計數。 UnicodeString由RTL內存管理器分配,並且被引用計數,就像AnsiString一樣。

只要可能,您應該使用(Unicode)String,並且只使用WideString進行COM互操作,或者處理使用WideString進行Unicode支持的舊版庫。

7

看來,答案是here

德爾福2009年最顯着的變化是,「字符串」類型是現在的UnicodeString而不是AnsiString類型的別名。

4

見本文由Marco坎其中概述了德爾福2009年的字符串(即的UnicodeString)的運作:

「白皮書:德爾福和Unicode」

http://dn.codegear.com/article/38980

基本上,它是羅迪說,但需要27頁詳細。

6

另一個需要注意的重要事項是性能差異。

在馬可坎圖的白皮書(在moodforaday的答覆中提到)說:

「WideString的是(現在仍然是)沒有引用計數,是非常差的性能和靈活性(比如而言,使用Windows全局內存分配器而不是本地FastMM4)。「

幾乎每一個德爾福2009年的升級指南我見過的建議你將所有的WideStrings轉換爲字符串。

相關問題