Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBScript中的Foo(…,[out]BSTR*值)调用COM方法_Com_Vbscript_Method Signature - Fatal编程技术网

使用VBScript中的Foo(…,[out]BSTR*值)调用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

是否可以使用签名来调用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参数。您可以使用VBScript调用接受ByRef字符串的过程,但使用Visual Basic生成的组件的默认行为是,在尝试将ByRef参数传递给这些组件时,由于类型不匹配错误而失败。当要求将ByRef变量转换为任何其他ByRef类型时,OLE Automation的默认类型强制功能将失败。”

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



谢谢,我添加了一个带有“启用VBS”签名的单独方法(
[ref]VARIANT*
)@peterchen请您发布
COM
方法的签名和
VARIANT
的声明以及
VBScript
中的方法调用。我似乎找不到解决同样问题的好例子。