怎样遍历Variant数组里的变量?
Variant的数组,里面的数据类型是我定义的结构体
我现在已经得到了数组大小
Dim yyy As Variant
line.GetInfo3Arr yyy
i = UBound(yyy, 1) '取得数组字节数,从0起
Dim ds As COMPONENT_INFO3
i = i / LenB(ds) '取得数组大小
接下来的For怎么写呢?
[解决办法]
Variant 变量能够存储所有系统定义类型的数据,它不能保存用户自定义类型。
Variant若保存的是数组,那它的VarPtr(yyy)+8位置才是指向数组的SafeArray结构的指针,SafeArray结构起始地址偏移12才是真正的数组数据首元素指针。
你这样CopyMemory是取不到数据的。
建议不要用Variant 变量,你这里只能用结构体数组。当然,若传入的就是数据指针,你可以用Long获取后,再CopyMemory进自己的结构体数组,不过若结构体中包括String,情况会更复杂。