【发布时间】:2022-11-11 00:58:07
【问题描述】:
COM 对象存在于 DLL 中。它的 IDL 大致如下:
[
object,
uuid(51EB4046-221E-45EF-BD63-0D31B163647C),
oleautomation,
dual,
pointer_default(unique)
]
interface IOne2OneNode : IDispatch
{
// ...
[propget, id(2), helpstring("property Vector")] HRESULT Vector([out, retval] VARIANT *pVal);
};
DLL 用VT_R8 的SAFEARRAY 填充*pVal(使用COleSafeArray)。
我想从使用 cscript.exe 执行的 JScript 脚本中访问数组元素。
我试过node.Vector[1],但它报告
TestIDispatch.wsf(115, 2) runtime error in Microsoft JScript: 'node.Vector' is Null or not an object
(模数德语到英语的翻译错误)。
此外,typeof node.Vector 报告unknown。
阅读this answer后,我尝试了
var vec = new VBArray(node.Vector).toArray();
但它报告runtime error in Microsoft JScript: VBArray expected。
如何从 JScript 访问数组元素?
【问题讨论】: