是否可以使用签名调用 COM 方法
HRESULT Foo(BSTR in, [out] BSTR * out1, [out] BSTR * out2)
来自 VBScript?
以下:
Dim a;
Dim b;
component.Foo "something", a, b
给出关于不兼容类型的错误。
我仍然可以更改方法的签名。
是否可以使用签名调用 COM 方法
HRESULT Foo(BSTR in, [out] BSTR * out1, [out] BSTR * out2)
来自 VBScript?
以下:
Dim a;
Dim b;
component.Foo "something", a, b
给出关于不兼容类型的错误。
我仍然可以更改方法的签名。
看起来不支持输出参数;while ByRef
/[in, out]
参数是,但仅限于VARIANT
参数。
来自以下知识库文章:
信息:将参数从 ASP 组件传递到 Visual Basic 组件@support.microsoft.com 时出现类型不匹配错误
" VBScript 仅支持 VARIANT ByRef 参数。您可以使用 VBScript 调用采用 ByRef 字符串的过程,但使用 Visual Basic 构建的组件的默认行为是在尝试将 ByRef 参数传递给这些组件时失败并出现类型不匹配错误。OLE当要求将 ByRef 变体转换为任何其他 ByRef 类型时,自动化的默认类型强制功能失败。 ”
此外,以下是有关该主题的其他链接:
输入,输出,输入输出,下定决心已经@MSDN 博客
VBScript “类型不匹配”问题与“[输入,输出] BSTR *”参数 SO 问题