如何将字符串值从C++返回到javascript(windows/Visual studio 2008)

How do I return a string value from C++ to javascript (windows/Visual studio 2008)?

本文关键字:windows Visual studio 2008 javascript 字符串 返回 C++      更新时间:2023-10-16

我有以下 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 代码应该是什么样子?

Javascript 本身不知道如何处理通过参数返回的值。您必须显式声明哪个参数是返回值,否则 COM 将仅返回 HRESULT。您可以通过以下方式执行此操作。

[id(3), helpstring("method GetValue")]  HRESULT GetValue([out, retval] BSTR *nicknames);