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

发布于 2024-11-25 12:33:10 字数 565 浏览 1 评论 0原文

我有一个调用 COM 注册的 C# 对象的 VBScript 应用程序。我能够将 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 类是仅公开方法并实现接口的类。我通过仅处理整数、长整型和字符串而收到此错误。

I have a VBScript app calling COM-registered C# objects. I am able to pass in a COM object to a COM call, as well as receive either a primitive or a COM object back, but I can't do both at the same time! If I try retrieving any value back from the call while also passing in a COM object, I get the exception "Invalid procedure call or argument"

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

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

If that last line is simply bar.Do(foo) it works fine.

Also, whether it is

Set return = bar.Do(foo)

or

return = bar.Do(foo)

causes the same error in this case.

My COM classes are classes with only methods exposed, and implementing an interface. I'm getting this error by dealing with only ints, longs, and Strings.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦冥 2024-12-02 12:33:10

我在这方面有点生疏,但如果你的方法返回一个 int 或 string 你的代码不应该阅读:

return = bar.Do(foo)

而不是

Set return = bar.Do(foo)

I'm a bit rusty in this area but if your method is returning an int or string shouldn't your code then read:

return = bar.Do(foo)

instead of

Set return = bar.Do(foo)
絕版丫頭 2024-12-02 12:33:10

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

"return = bar.Do(foo)" should work, as long as Bar.Do is actually returning something. How is Bar.Do defined?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文