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