本文用到的是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 |
|