“无效的过程调用或参数”VBScript调用C#COM方法

时间:2011-07-20 15:33:02

标签: c# com vbscript

我有一个VBScript应用程序调用COM注册的C#对象。我能够将COM对象传递给COM调用,以及接收原始对象或COM对象,但我不能同时执行这两个操作!如果我尝试从调用中检索任何值,同时传入COM对象,我会得到异常“无效的过程调用或参数”

Dim foo
Set foo = Server.CreateObject("Foo")
foo.SetProperty(1)

Dim bar
Set bar = Server.CreateObject("Bar")
Dim return
Set return = bar.Do(foo)

如果最后一行只是bar.Do(foo),那么它可以正常工作。

另外,是否

Set return = bar.Do(foo)

return = bar.Do(foo)
在这种情况下,

会导致相同的错误。

我的COM类是只暴露方法并实现接口的类。我只通过处理整数,长整数和字符串来解决这个错误。

2 个答案:

答案 0 :(得分:2)

我在这方面有点生疏,但是如果你的方法返回一个int或字符串,那么你的代码不应该是:

return = bar.Do(foo)

而不是

Set return = bar.Do(foo)

答案 1 :(得分:0)

“return = bar.Do(foo)”应该有效,只要Bar.Do实际上返回了一些东西。 Bar.Do是如何定义的?