使用VBScript中的Foo(…,[out]BSTR*值)调用COM方法
是否可以使用签名来调用COM方法使用VBScript中的Foo(…,[out]BSTR*值)调用COM方法,com,vbscript,method-signature,Com,Vbscript,Method Signature,是否可以使用签名来调用COM方法 HRESULT Foo(BSTR in, [out] BSTR * out1, [out] BSTR * out2) 从VBScript 以下是: Dim a; Dim b; component.Foo "something", a, b 提供有关不兼容类型的错误 我仍然可以更改方法的签名 似乎不支持输出参数;而ByRef/[in,out]参数是,但仅在变量上参数 来自以下知识库文章: “VBScript仅支持变量ByRef参数。您可以使用VBS
HRESULT Foo(BSTR in, [out] BSTR * out1, [out] BSTR * out2)
从VBScript
以下是:
Dim a;
Dim b;
component.Foo "something", a, b
提供有关不兼容类型的错误
我仍然可以更改方法的签名 似乎不支持输出参数;而
ByRef
/[in,out]
参数是,但仅在变量上
参数
来自以下知识库文章:
“VBScript仅支持变量ByRef参数。您可以使用VBScript调用接受ByRef字符串的过程,但使用Visual Basic生成的组件的默认行为是,在尝试将ByRef参数传递给这些组件时,由于类型不匹配错误而失败。当要求将ByRef变量转换为任何其他ByRef类型时,OLE Automation的默认类型强制功能将失败。”
此外,这里还有关于该主题的其他链接:
谢谢,我添加了一个带有“启用VBS”签名的单独方法(
[ref]VARIANT*
)@peterchen请您发布COM
方法的签名和VARIANT
的声明以及VBScript
中的方法调用。我似乎找不到解决同样问题的好例子。