Variant的数组,里面的数据类型是我定义的结构体我现在已经得到了数组大小
Dim yyy As Variant
line.GetInfo3Arr yyy
i = UBound(yyy, 1) '取得数组字节数,从0起
Dim ds As COMPONENT_INFO3
i = i / LenB(ds) '取得数组大小接下来的For怎么写呢?
Dim yyy As Variant
line.GetInfo3Arr yyy
i = UBound(yyy, 1) '取得数组字节数,从0起
Dim ds As COMPONENT_INFO3
i = i / LenB(ds) '取得数组大小接下来的For怎么写呢?
line.GetInfo3Arr yyy
i = UBound(yyy, 1) '取得数组字节数,从0起 ————二维数组?Dim ds As COMPONENT_INFO3
i = i / LenB(ds) '取得数组大小 ———————————数组的大小,能这样取么?'——————二维数组的遍历
for i=0 to ubound(yyy)
for j=0 to ubound(yyy,1)
? yyy(i,j)
next j
next i
COMPONENT_INFO3 是什么样子的类型?
为什么我写yyy(i).xxx 不行呢?
为什么我写yyy(i).xxx 不行呢?提示
run-time error '424':
object required
为什么我写yyy(i).xxx 不行呢?提示
run-time error '424':
object required是不是引用数组越界??
我写
yyy(0).xxx
yyy(1).xxx
也这样
看了,里面的值没错
variant的变量在watch里面都显示成byte了,于是我想如果能像c那样强制转换类型就ok了,可是不行。
又想能copy出一份也可以,但是下面两种方法拷贝到的内容在watch里面看都不对,为什么呢?
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function VarPtr Lib "MSVBVM60" (var As Any) As Long
Dim uuu(24) As Byte '结构体大小是24
CopyMemory uuu(0), VarPtr(yyy), 24
CopyMemory uuu(0), yyy, 24
CopyMemory uuu(0), byval VarPtr(yyy), 24'最好这么写