vb脚本中createobject,创建对象的用法!懂的进来看看!100p!

时间:2022-02-19 04:13:55
对于vb脚本中对象的用法,我不是很清楚,能人指点一下吧
1. 我试过可以用creatobject("system.collection.arraylist")创建一个arraylist对象,但是我有一个应用程序名为a,里面有一个类b
dim ss
set ss= createobject("a.b")  '执行脚本时,弹出错误,无法创建“a.b”
??????
2. 关于对象之间的赋值。经过我的测试是不行的,真的如此么?
3.关于数组  
例如:
程序中:  
public class Data
 public function ra() as array    ‘返回数组
     dim a(20) as integer
     return a
 end function
end class
dim data as new Data           'data对象

脚本中已添加data

脚本文件:
dim i
i=data.ra(10) 

执行时弹出错误,无法创建AUTOMATION类 !!
我的问题是如何在脚本中用对象中的数组???


上面提出的问题,有一定相关性吧:)

6 个解决方案

#1


1.创建并返回对 COM 对象的引用。CreateObject 不能用于在 Visual Basic 中创建类的实例,除非这些类已显式公开为 COM 对象。
2.不太明白你的意思,.net是可以对象赋值的。
3.没有问题,但楼主的代码i=data.ra(10) 好像不对,应该是i=data.ra()

#2


to hero0045(hero) :
 第3个问题,我试过了,i=data.ra()是正确的
 那么,i就是大小为20的数组了么?如何实用i中的数据了?
 
dim bb
bb=i(1)   '执行错误,类型不匹配

#3


dim bb
bb=0
bb=i(1)
相同类型的对象之间可以赋

#4


To bluecole (bluecole)

使用變量時,如果可以確定要使用的類型,你最好顯式定義一下,要不可能會出現非法的隱式轉換,造成程序出現異常.

#5


To bluecole (bluecole) 
回答你第一个问题
dim ss
set ss= createobject("a.b")  

在.net中,
Imports System.Runtime.Remoting

dim ss as a.b
dim objHandle as objecthandle
objHandle=Activator.CreateInstance("a","a.b")
ss=objHandle.Unwrap
这样就得到了a.b类型的变量ss

第二个问题

对象之间赋值是可以的,即把一个对象赋值给另一个对象。

#6


能在脚本语言中使用的对象必须实现IDispatch接口,这是一个com接口,支持延迟绑定

普通的.net类是不行的,必须对COM公开

实现方法见:http://www.microsoft.com/china/msdn/archives/library/dndotnet/html/callnetfrcom.asp

#1


1.创建并返回对 COM 对象的引用。CreateObject 不能用于在 Visual Basic 中创建类的实例,除非这些类已显式公开为 COM 对象。
2.不太明白你的意思,.net是可以对象赋值的。
3.没有问题,但楼主的代码i=data.ra(10) 好像不对,应该是i=data.ra()

#2


to hero0045(hero) :
 第3个问题,我试过了,i=data.ra()是正确的
 那么,i就是大小为20的数组了么?如何实用i中的数据了?
 
dim bb
bb=i(1)   '执行错误,类型不匹配

#3


dim bb
bb=0
bb=i(1)
相同类型的对象之间可以赋

#4


To bluecole (bluecole)

使用變量時,如果可以確定要使用的類型,你最好顯式定義一下,要不可能會出現非法的隱式轉換,造成程序出現異常.

#5


To bluecole (bluecole) 
回答你第一个问题
dim ss
set ss= createobject("a.b")  

在.net中,
Imports System.Runtime.Remoting

dim ss as a.b
dim objHandle as objecthandle
objHandle=Activator.CreateInstance("a","a.b")
ss=objHandle.Unwrap
这样就得到了a.b类型的变量ss

第二个问题

对象之间赋值是可以的,即把一个对象赋值给另一个对象。

#6


能在脚本语言中使用的对象必须实现IDispatch接口,这是一个com接口,支持延迟绑定

普通的.net类是不行的,必须对COM公开

实现方法见:http://www.microsoft.com/china/msdn/archives/library/dndotnet/html/callnetfrcom.asp