VCL对象内存分布之偏移常量

{ Virtual method table entries }
{$IF defined(CPUX64)}
  vmtSelfPtr           = -176;
  vmtIntfTable         = -168;
  vmtAutoTable         = -160;
  vmtInitTable         = -152;
  vmtTypeInfo          = -144;
  vmtFieldTable        = -136;
  vmtMethodTable       = -128;
  vmtDynamicTable      = -120;
  vmtClassName         = -112;
  vmtInstanceSize      = -104;
  vmtParent            = -96;
  vmtEquals            = -88 deprecated 'Use VMTOFFSET in asm code';
  vmtGetHashCode       = -80 deprecated 'Use VMTOFFSET in asm code';
  vmtToString          = -72 deprecated 'Use VMTOFFSET in asm code';
  vmtSafeCallException = -64 deprecated 'Use VMTOFFSET in asm code';
  vmtAfterConstruction = -56 deprecated 'Use VMTOFFSET in asm code';
  vmtBeforeDestruction = -48 deprecated 'Use VMTOFFSET in asm code';
  vmtDispatch          = -40 deprecated 'Use VMTOFFSET in asm code';
  vmtDefaultHandler    = -32 deprecated 'Use VMTOFFSET in asm code';
  vmtNewInstance       = -24 deprecated 'Use VMTOFFSET in asm code';
  vmtFreeInstance      = -16 deprecated 'Use VMTOFFSET in asm code';
  vmtDestroy           =  -8 deprecated 'Use VMTOFFSET in asm code';

  vmtQueryInterface    =  0 deprecated 'Use VMTOFFSET in asm code';
  vmtAddRef            =  8 deprecated 'Use VMTOFFSET in asm code';
  vmtRelease           = 16 deprecated 'Use VMTOFFSET in asm code';
  vmtCreateObject      = 24 deprecated 'Use VMTOFFSET in asm code';
{$ELSE !CPUX64}
  vmtSelfPtr           = -88;    // VMT地址,即该地址+88
  vmtIntfTable         = -84;
  vmtAutoTable         = -80;
  vmtInitTable         = -76;
  vmtTypeInfo          = -72;
  vmtFieldTable        = -68;
  vmtMethodTable       = -64;
  vmtDynamicTable      = -60;
  vmtClassName         = -56;
  vmtInstanceSize      = -52;
  vmtParent            = -48;
  vmtEquals            = -44 deprecated 'Use VMTOFFSET in asm code';
  vmtGetHashCode       = -40 deprecated 'Use VMTOFFSET in asm code';
  vmtToString          = -36 deprecated 'Use VMTOFFSET in asm code';
  vmtSafeCallException = -32 deprecated 'Use VMTOFFSET in asm code';
  vmtAfterConstruction = -28 deprecated 'Use VMTOFFSET in asm code';
  vmtBeforeDestruction = -24 deprecated 'Use VMTOFFSET in asm code';
  vmtDispatch          = -20 deprecated 'Use VMTOFFSET in asm code';
  vmtDefaultHandler    = -16 deprecated 'Use VMTOFFSET in asm code';
  vmtNewInstance       = -12 deprecated 'Use VMTOFFSET in asm code';
  vmtFreeInstance      = -8 deprecated 'Use VMTOFFSET in asm code';
  vmtDestroy           = -4 deprecated 'Use VMTOFFSET in asm code';

  vmtQueryInterface    = 0 deprecated 'Use VMTOFFSET in asm code';
  vmtAddRef            = 4 deprecated 'Use VMTOFFSET in asm code';
  vmtRelease           = 8 deprecated 'Use VMTOFFSET in asm code';
  vmtCreateObject      = 12 deprecated 'Use VMTOFFSET in asm code';
{$IFEND !CPUX64}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值