【发布时间】:2012-11-16 12:07:36
【问题描述】:
我有以下 IDL,可以很好地将字符串值从 JS 传递到 C++。 JS 代码将一个字符串值传递给 c++/COM 对象。
[id(1), helpstring("method DoSomething")] HRESULT DoSomething([in] BSTR otlToken);
我现在需要添加另一个方法来将字符串返回给 javascript 调用者。我在 IDL 中添加了以下内容:
[id(3), helpstring("method GetValue")] HRESULT GetValue([out] BSTR *nicknames);
在 JS 方面工作的开发人员说,他收到一条关于参数数量错误和其他事情的消息,具体取决于他是尝试调用方法还是将其作为属性访问。
JS 是否需要通过引用调用才能获得此信息,还是我必须将一个 BSTR* 参数作为 [in,out] 传递?
我怎样才能让它工作? (从 C++/IDL 获取字符串值给 JS 调用者?
IDL 应该是什么样子,JS 代码应该是什么样子?
【问题讨论】:
-
尝试在 IDL 中指定
nicknames是一个返回值 ...[out, retval] BSTR *nicknames -
@Captain 谢谢!这样可行。如果您将此作为答案,我会接受。否则我会复制你的答案并检查它。无论如何,谢谢
标签: javascript c++ visual-studio idl