首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb6结构体在内存中怎么排列

2012-04-23 
vb6结构体在内存中如何排列求助求助vb6结构体在内存中占字节的说明Private Type POINTx As Longy As LongE

vb6结构体在内存中如何排列求助
求助vb6结构体在内存中占字节的说明

Private Type POINT
  x As Long
  y As Long
End Type

Private Type DROPFILES
  pFiles As Long
  pt As POINT
  fNC As Long
  fWide As Long
End Type
如上结构。我知道在vb6中string 是以 btsr类型存在的。那么上面结构实例化后,在内

存中是怎么排列的呢,有没有4个字节的引导字节呢?
请前辈指点我,最好是以图示的形式

[解决办法]
API 中不是 BSTR
http://www.vckbase.com/document/viewdoc/?id=444
[解决办法]
这种是按照成员所占空间,按顺序直接分配内存的。
用什么图啊,代码最能说明问题:

VB code
Option ExplicitPrivate Type POINT  x As Long  y As LongEnd TypePrivate Type DROPFILES  pFiles As Long  pt As POINT  fNC As Long  fWide As LongEnd TypePrivate Sub Form_Click()   Dim stcTest As DROPFILES   Cls   Print Hex$(VarPtr(stcTest))   Print Hex$(VarPtr(stcTest.pFiles))   Print Hex$(VarPtr(stcTest.pt))   Print Hex$(VarPtr(stcTest.pt.x))   Print Hex$(VarPtr(stcTest.pt.y))   Print Hex$(VarPtr(stcTest.fNC))   Print Hex$(VarPtr(stcTest.fWide))End Sub
[解决办法]
Private Type DROPFILES
pFiles As Long
pt As POINT
fNC As Long
fWide As Long
End Type

你自己试一下就知道了:
sub comand1_clikc
dim x as DROPFILES

debug.print varptr(x.pFiles),Varptr(x.pt),varptr(x.fnc),Varptr(fWidth)
end sub
[解决办法]
VB code
Option ExplicitPrivate Type POINT  x As Long  y As LongEnd TypePrivate Type DROPFILES  pFiles As Long  pt As POINT  fNC As Long  fWide As LongEnd TypePrivate Sub Command1_Click()    Dim stcTest As DROPFILES    Debug.Print LenB(stcTest) '结果是20个字节End Sub 

热点排行