读书人

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

发布时间: 2012-04-23 13:17:38 作者: rapoo

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 

读书人网 >VB

热点推荐