数组问题
数组在程序中使用的很多,而且比较容易出问题 我们通过小例子来看看
打开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文件,得到结果如下: 龙卷风
总结一下: 字符串,数字通过值传递或者作为返回值被返回 如果使用引用传递,将参数的类型设为Variant。这样做可以避免一些错误。不过尽可能的减少引用传递参数
未完待续 |