首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

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

2012-01-28 
怎样遍历Variant数组里的变量?Variant的数组,里面的数据类型是我定义的结构体我现在已经得到了数组大小Dim

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


热点排行