c# - "Invalid procedure call or argument"VBScript 调用 C# COM 方法

标签 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 类是仅公开方法并实现接口(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/

相关文章:

mysql - 如何添加或加上时间到 NOW()

c# - C# 中等效的 LPCSTR 数据类型

c# - String.Split 返回奇怪的结果

c# - 通过 COM 接口(interface)时出错

c# - IApplicationActivationManager::ActivateApplication 在 C# 中?

windows - 用于检查系统中已安装程序及其版本的脚本

vbscript - 在不满足条件的情况下退出/停止VBscript运行的代码是什么?

c# - 如何使用Winform保存类的当前应用程序状态?

c# - 后退按钮横行

c# - 如何为 COM 编码流