textbox

IT博客 联系 聚合 管理
  103 Posts :: 7 Stories :: 22 Comments :: 0 Trackbacks

先来看看他的 string 的定义吧 .

 

Delphi7:

  type

      PStrRec = ^StrRec;

      StrRec = packedrecord

    refCnt: Longint;

    length: Longint;

  end;

 

Delphi 2010:

  PStrRec = ^StrRec;

  StrRec = packedrecord

    codePage: Word;

    elemSize: Word;

    refCnt: Longint;

    length: Longint;

  end;

 

每个 string StrRec 都是可以根据 string 内存地址 – sizeof(StrRec) 得到 .

 

细心的人已经可以看出来一些端倪了 .2010 增加了两个 Word 来保存编码和宽度

 

编译器会处理

声明的是 AnsiString 时候 elemSize=1 ,codePage= ( 如果是繁体系统就是 big5 的页码 950 简体就是 936)

如果声明是 string (Unicode) elemSize=2  ,codePage= 1200 (0x04B0)

如果声明是 UTF8String 时候 elemSize=1 ,codePage= 65001

posted on 2011-03-28 09:39 零度 阅读(1187) 评论(1)  编辑 收藏 引用 所属分类: delphi
只有注册用户登录后才能发表评论。