读书人

怎样遍历Variant数组里的变量?解决方

发布时间: 2012-01-28 22:06:13 作者: rapoo

怎样遍历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,情况会更复杂。


读书人网 >VB

热点推荐