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