【发布时间】:2011-03-27 20:38:16
【问题描述】:
我需要将一个关联数组从 Javascript 传递到 IE6+ 中的 C++ activex 控件。为如此标准的东西编写自己的类型似乎很可惜。它不必与原生 JS 对象一起使用,如果需要,我可以使用自定义关联数组类型。
我已经在谷歌上搜索了几天,关于这个主题的信息并不多。 COM 和 ATL 必须已经有了这个,不是吗?
【问题讨论】:
标签: javascript com activex atl
我需要将一个关联数组从 Javascript 传递到 IE6+ 中的 C++ activex 控件。为如此标准的东西编写自己的类型似乎很可惜。它不必与原生 JS 对象一起使用,如果需要,我可以使用自定义关联数组类型。
我已经在谷歌上搜索了几天,关于这个主题的信息并不多。 COM 和 ATL 必须已经有了这个,不是吗?
【问题讨论】:
标签: javascript com activex atl
Eric Lippert 的 post 可能会阐明如何从 C++ 中完成它。看看他关于 Javascript 数组是 Dispatch 对象的 cmets。因此,您可以获得 DISPID 并在每个上调用 Invoke。另一种选择是使用VBArray(和一点VBScript)将Javascript数组转换为SafeArray,或者你可以只使用Scripting.Dictionary COM对象,它相当于一个关联数组。下面是一些资源。
http://www.java2s.com/Tutorial/JavaScript/0600__MS-JScript/DictionaryKeys.htm
【讨论】: