|            
数组问题
  数组在程序中使用的很多,而且比较容易出问题
  我们通过小例子来看看
   
  打开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。这样做可以避免一些错误。不过尽可能的减少引用传递参数
   
  未完待续
 
   
 |