gpt4 book ai didi

com - 使用 Foo(..., [out] BSTR * value) 从 VBScript 调用 COM 方法

转载 作者:行者123 更新时间:2023-12-04 20:21:52 24 4
gpt4 key购买 nike

是否可以使用签名来调用 COM 方法

 HRESULT Foo(BSTR in, [out] BSTR * out1, [out] BSTR * out2)

来自 VBScript?

下列:
 Dim a;
Dim b;
component.Foo "something", a, b

给出关于不兼容类型的错误。

我仍然可以更改方法的签名。

最佳答案

貌似不支持输出参数;而 ByRef/[in, out]参数是,但仅限于 VARIANT参数。

来自以下知识库文章:

INFO: Type mismatch errors when you pass parameters from an ASP component to Visual Basic Component @ support.microsoft.com

“VBScript 仅支持 VARIANT ByRef 参数。您可以使用 VBScript 调用接受 ByRef 字符串的过程,但使用 Visual Basic 构建的组件的默认行为是在尝试将 ByRef 参数传递给这些组件时失败并出现类型不匹配错误。OLE当要求将 ByRef 变体转换为任何其他 ByRef 类型时,Automation 的默认类型强制函数失败。”

此外,这里有关于该主题的其他链接:

In, Out, In-Out, Make up your mind Already @ MSDN blogs
VBScript “Type Mismatch” issue with “[in, out] BSTR * ” parameter SO Question

关于com - 使用 Foo(..., [out] BSTR * value) 从 VBScript 调用 COM 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5646760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com