分享

vb中 如何判断数组是否初始化或为空

 doc360sir 2011-12-06
本文用到的是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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多