【问题标题】:how to call a C++ COM function with BSTR parameter in VBScript如何在 VBScript 中调用带有 BSTR 参数的 C++ COM 函数
【发布时间】:2011-07-03 13:30:01
【问题描述】:

在我用 C++ 编写的 COM 组件中,有以下功能: HRESULT f(BSTR id)

如何在VBScript中调用这个函数?

提前致谢!

【问题讨论】:

    标签: c++ com vbscript


    【解决方案1】:

    为了从 VBScript 调用 COM 组件,您的对象必须实现 IDispatch 接口。完成此操作后,您可以执行以下操作:

    Set myObj = CreateObject("yourObject")
    myObj.f "Hello, world!"
    

    从 vbscript 传入的 VARIANT 参数与实现所需的 BSTR 参数之间的映射是 IDispatch 实现的工作。如果您使用的是 ATL,请参阅这篇关于如何使用 ATL 内置 IDispatch 实现的文章:http://flylib.com/books/en/3.90.1.47/1/

    【讨论】:

    • 只使用myObj.f "Hello, world!",不带括号。使用没有Call 语句的括号是非常危险的。
    • 看起来像是 @bdonlan 的“心理调试”的一个很好的案例
    猜你喜欢
    • 2012-04-08
    • 2015-05-01
    • 2020-03-16
    • 1970-01-01
    • 2011-08-04
    • 2017-04-03
    • 2017-03-17
    • 2013-04-11
    • 1970-01-01
    相关资源
    最近更新 更多