香蕉体育官网:vb中 如何判断数组是否初始化或为空

来源:百度文库 编辑:中财网 时间:2024/04/25 11:56:29
本文用到的是SafeArray结构的知识,感兴趣的可以搜索一下

原帖见:
topic.csdn.net/u/20100706/14/f81323d6-233b-45ef-af71-2ced3de677d4.html



Private Declare Function VarPtrArray _
Lib "msvbvm60.dll" _
Alias "VarPtr" (Var() As Any) As Long

Private Declare Sub CopyMemory _
Lib "kernel32" _
Alias "RtlMoveMemory" (lpDst As Any, _
lpSrc As Any, _
ByVal ByteLength As Long)

Private Sub Form_Load()

Dim a(0) As Long '被检测的数组

Dim PSafeArray As Long

'取得的数组内容的地址,
'如果该数字指向一个正确的地址,那么该数组是已经被正确初始化的
'如果其指向0,那么说明数组没有被初始化过

CopyMemory PSafeArray, ByVal VarPtrArray(a()), 4 '从数组的SafeArray结构头中得到实际数据的地址

If PSafeArray = 0 Then
MsgBox "数组没有被初始化过"
Else
MsgBox "数组已经被初始化,其数据地址为" & PSafeArray
End If