大家都知道ASP是一種非類型化的腳本語言,而由VB、VC、Delphi等語言開發的DLL組件都是強類型化的,今天錯新技術頻道小編為大家帶來ASP+COM不得不注意的問題有哪些?
示例代碼:
Class?Test:
Public?Function?GetStr()
????GetStr?=?Split("a,b,c,d",?",")
End?Function
ASP代碼:
Dim?o
Set?o=Server.CreateObject("Bqrm.Test")
Dim?arr
arr=o.GetStr()
Response.Write(TypeName(arr))???'輸出String()
Response.Write(IsArray(arr))?????????'輸出True??
Response.Write(arr(0))????????????????'輸出類型不匹配,IsArray返回它是一個數組,可是你不能把它當成一個數組來操作,郁悶啊
但是改一個GetStr方法的代碼,就能讓它能用,如:
Public?Function?GetStr()
????GetStr?=?Array("a","b","c","d")
End?Function
改成這樣它就不會出錯了,不過,有的時候你又不可能把所有的元素都列出來呀,只好寫一個函數,把它轉換成無類型的數組,
Function?GetVbsArray(ByVal?arr)
????If?IsArray(arr)?Then
????????Dim?arrTmp()
????????ReDim?arrTmp(UBound(arr))
????????Dim?iBound
????????iBound?=?0
????????Dim?tmp
????????For?Each?tmp?In?arr
????????????arrTmp(iBound)?=?tmp
????????????iBound?=?iBound?+?1
????????Next
????????GetVbsArray?=?arrTmp
????????Erase?arrTmp
????Else
????????GetVbsArray?=?arr
????End?If
End?Function
把它放到一個模塊里面,然后在返回數組的方法返回前,轉換一下如:
Public?Function?GetStr()
????GetStr?=?GetVbsArray(Split("a,b,c,d",?","))
End?Function
這樣,也就沒有問題了.
以上就是關于ASP+COM不得不注意的問題介紹,相信時常關注錯新技術頻道的朋友們已經都懂得了這些操作方法了。我們還有更多的資訊,如果你想了解更多記得關注我們的哦!
新聞熱點
疑難解答