读书人

请问VBS调用COM组件时传参有关问题

发布时间: 2012-12-16 12:02:32 作者: rapoo

请教VBS调用COM组件时传参问题
VBS调用COM组件时,可不可以将COM里面定义的一个对象作为参数,在调用同一组件的别一个接口传入这个接口。
可以的话应该怎么写。
比如我在COM组件里定义一个对象TASK,在VBS里声明
Dim task
task = CreatObject()
后调用同一组件的另一个接口,Dim test
test = CreatObject()
test.putIn(task)

能将task做为参数传入吗?


上面几行代码有问题我知道,不考虑这个,
对象正确创建和赋值了,接口也能调用,
就是问下能不能将对象做为参数传入。
[解决办法]
如果你的 putIn()接收的参数类型为Object,应该可以吧。


[解决办法]
试一试吧,感觉这个的具体问题具体分析。
[解决办法]

引用:
如果你的 putIn()接收的参数类型为Object,应该可以吧。


接收的参数就是指定的task的类型
[解决办法]
引用:
如果你的 putIn()接收的参数类型为Object,应该可以吧。


当然有试过了,不然也不会来这边求教了
对象创建成功了,接口也调用到了,就是对象传不进去。
或者说不知道怎么传。
[解决办法]
用法应该是这样。

只是,你确定 test.putIn(task) 里的这个 task ,一定是前面 Dim 的那个 task吗?
VBS里也要考虑变量作用域的问题吧。

还有一个问题是,VBS是不会对标识符区分大小写的,你的“类名”和变量名,虽然你写出来认为是有区别的,但恐怕实际上有歧义。
建议你把task换成别的名称再试试。

[解决办法]
向高手学习了!
[解决办法]
对象赋值要用 Set 语句
Set task = CreatObject()
Set test = CreatObject()

[解决办法]
引用:
用法应该是这样。

只是,你确定 test.putIn(task) 里的这个 task ,一定是前面 Dim 的那个 task吗?
VBS里也要考虑变量作用域的问题吧。

还有一个问题是,VBS是不会对标识符区分大小写的,你的“类名”和变量名,虽然你写出来认为是有区别的,但恐怕实际上有歧义。
建议你把task换成别的名称再试试。


嗯,这个我倒没注意。刚接触VBS没多久,没注意是否区分大小写,可能是这个问题,我先试试

读书人网 >VB

热点推荐