深入探索 Visual Basic 结构体与 C 头文件转换
1. Visual Basic 结构体的存储与调用分析
在 Visual Basic 中,结构体的存储和在 DLL 函数调用时的传递方式有所不同。以 cmdStruct1_Click 函数为例,它可以用来检查结构体在 Visual Basic 内部的存储情况以及在 DLL 函数调用时的传递情况。
Private Sub cmdStruct1_Click()
Dim s As Struct1
Dim b(40) AS Byte
s.a = &H1234
s.b = &H5678
s.c = "ABCD"
s.d = "ABCD"
Debug.Print "Structure contains on API call: "
RtlMoveMemory b(0), s, Len(s)
ShowMemory VarPtr(b(0)), Len(s)
' Why can't we look at the string data?
' Answer - temporary buffers!
Debug.Print "In VB it contains: "
ShowMemory VarPtr(s), LenB(s)
End Sub
在这个函数中,结构体的 a 和 b 字段分别被设置为十六进制值 &H1234 和 <
超级会员免费看
订阅专栏 解锁全文
972

被折叠的 条评论
为什么被折叠?



