gpt4 book ai didi

javascript - 如何转换 JavaScript 对象以从 C++ 访问其数据?

转载 作者:搜寻专家 更新时间:2023-10-31 01:04:43 28 4
gpt4 key购买 nike

我在我的 C++ (MFC) 应用程序中使用嵌入式 IE ActiveX 控件。嵌入式 IE 有一个 JavaScript 方法,它使用以下(简化的)JavaScript 将数据传回我的 C++ 应用程序:

function passDataTocpp()

{
return {key1: 134, key2:'value2'};

}

当我在我的 C++ 代码中收到它时,我得到一个类型为 VT_DISPATCH 的 VARIANT。我能够找到 this example将数组转换为 C++ 可访问数据,但似乎不适用于关联数组(或对象)。

知道如何访问该数据吗?

最佳答案

IDispatch::GetIdsOfNames , IDispatch::Invoke(DISPID_PROPGET) .如果您甚至不知道该对象具有哪些属性,请查询 IDispatchEx并使用 GetNextDispID枚举它们。

由于您使用的是 ATL,CComDispatchDriverIDispatch 的便捷包装(但不是 IDispatchEx - 您必须直接调用的那个)。出于某种原因,它没有记录在 MSDN 中。查找CComPtr<IDispatch> atlcomcli.h 的特化,相当简单。 CComDispatchDriver是它的类型定义。

关于javascript - 如何转换 JavaScript 对象以从 C++ 访问其数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23436737/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com