數組問題
數組在程式中使用的很多,而且比較容易出問題
我們通過小例子來看看
開啟vb6,建立Activex Dll工程。工程名修改為fCom,類名修改為fC4
點擊菜單->工具->添加過程
我們在名稱內輸入AcceptArray1,類型選擇子程式,範圍選取公有,然後確定
再次操作:在名稱內輸入AcceptArray2,類型選擇函數,範圍選取公有,然後確定即可
‘功能:傳遞數組地址到組件,使用ByRef關鍵字,並賦值返回
Public Sub AcceptArray1(ByRef varray As Variant) As Variant
varray(0) = "龍捲風"
varray(1) = "20"
End Sub
‘功能:返回一個字串數組
Public Function AcceptArray2() As Variant
Dim a(2) as Variant
a(0) = "龍捲風"
a(1) = "20"
AcceptArray2=a
End Function
Ok,一個組件就寫好了,點擊菜單->檔案->產生fCom.dll檔案
確定,在目錄下就會有fCom.dll檔案
測試
開啟visual interdev6.0,產生一個asp檔案
<%@ Language=VBScript %>
<HTML>
<BODY>
<%
dim obj
set obj = server.createobject("fCom.fC4")
dim a(2)
'測試第一個組件方法
obj.AcceptArray1(a)
response.write a(0)
response.write "<br>"
response.write a(1)
response.write "<br>"
'測試第二個組件方法
dim b
b=obj.AcceptArray2()
for i=0 to ubound(b)
Response.Write b(i)
response.write "<br>"
next
%>
</BODY>
</HTML>
配置好虛擬目錄,在ie中執行此asp檔案,得到結果如下:
龍捲風
20
龍捲風
20
總結一下:
字串,數字通過值傳遞或者作為傳回值被返回
如果使用引用傳遞,將參數的類型設為Variant。這樣做可以避免一些錯誤。不過儘可能的減少引用傳遞參數
未完待續