我有一个 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 类是仅公开方法并实现接口(interface)的类。我因仅处理整数、长整数和字符串而收到此错误。
最佳答案
我在这方面有点生疏,但如果您的方法返回一个 int 或字符串,那么您的代码不应该阅读:
return = bar.Do(foo)
代替
Set return = bar.Do(foo)
关于c# - "Invalid procedure call or argument"VBScript 调用 C# COM 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764499/