而在D7 中string 是ansistring
char 认为 widechar;
XE2有三种字符串:ansistring,widestring,UnicodeString (新增)
XE2 多了一个UicodeString
d7
TTypeKind = (tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat,
tkString, tkSet, tkClass, tkMethod, tkWChar, tkLString, tkWString,
tkVariant, tkArray, tkRecord, tkInterface, tkInt64, tkDynArray);
XE2
TTypeKind = (tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat,
tkString, tkSet, tkClass, tkMethod, tkWChar, tkLString, tkWString,
tkVariant, tkArray, tkRecord, tkInterface, tkInt64, tkDynArray, tkUString,
tkClassRef, tkPointer, tkProcedure);
D7: Format of AnsiString Data Type
ReferenceCount Length String Data (Byte sized) Null Term
-8 -4 0 Length
xe2: AnsiString 增加了两个新的 fields, 一个是 CodePage,一个是 ElemSize(都是四字借整数)UnicodeString 和 AnsiString 都是如上的结构,尽管 UnicodeString 包含是双字节数据,AnsiString 包含的是单字节的。
WideString 仍然是为 COM 保持兼容的,也就是说它依然没有引用计数,相比较而言,UnicodeString在性能和效率上将会是 COM 以外的程序首选的字符类型。
XE2 比elphi7好的地方:
支持unicodestring,
可以使用delphi的Datanasp做系统核心的中间件,而不必使用第三方控件,减轻系统对第三方控件的依赖。
中间件、开发平台、程序使用同一版本的delphi平台开发,不必担忧所开发程序间的兼容性,减轻系统维护负担