Public Function GetPID()
Dim ks()
redim preserve ks(j)
GetPID = ks
End Function
Public Function test()
dim tt
tt = GetPID()
log.Message UBound(tt)
End Function
根據上面代碼我從GetPID方法中獲得一個陣列,由于該陣列中沒有任何元素,所以我在test方法中使用時UBound方法時得到“陣列下標越界”,然后我看了UBound的介紹如果陣列中沒有元素,UBound的回傳值是Undefined,我如何判斷UBound(陣列名)的回傳值是Undefined
uj5u.com熱心網友回復:
以前就有,baidu好好搜搜。。。可以直接用copymemory
uj5u.com熱心網友回復:
safearraygetdimuj5u.com熱心網友回復:
判斷一個陣列是否初始化:http://bbs.csdn.net/topics/270065874
uj5u.com熱心網友回復:
沒有定義 .uj5u.com熱心網友回復:
1 把陣列定義放在公共段,否則它的生命周期僅限于 GetPID 函式內部。或者在函式中宣告為 Static ks()。2 用 OnError 陳述句來處理錯誤。
Option Explicit
Dim ks()
Dim j As Long
Public Function GetPID()
ReDim Preserve ks(j)
GetPID = ks
End Function
Public Function test()
On Error GoTo ErrorHandler
Dim tt
tt = GetPID()
MsgBox "UBound = " & UBound(tt)
Exit Function
ErrorHandler:
MsgBox "Error " & Err.Number & ": " & Err.Description
End Function
Private Sub Form_Load()
j = -1
test
j = 8
test
End Sub
uj5u.com熱心網友回復:
才發現是掘墓貼。uj5u.com熱心網友回復:
好大一個墳, 不過safearray結構里專門有一個標志是表示陣列是否初始化的.轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/113918.html
標籤:資源
上一篇:呼叫DLL問題。。瘋了
