首页 相关文章 把JS,vbs中的数组传递给COM组件,Activex

把JS,vbs中的数组传递给COM组件,Activex

  COM组件的方法在IDL中的声明:

  [id(1), helpstring("方法InputArray")] HRESULT InputArray([in] VARIANT vData);

  在脚本中建立数组并调用COM组件的方法:

  当数组很大的时候,like 100k ,javascript在给数组赋值的时候效率非常低!完成时间,cpu占用率,占用的内存都大的可怕。反而VBScript却完成的很好。

  COM组件的代码:

  从代码中可以看到vbscript传进来的是个SafeArray。而javascript的情况就复杂了,javascript中得数组并不是真正意义上的数组,这个数组传到COM中被放进一个集合里,参数VARIANT的类型被置为VT_DISPATCH,我们得通过这个IDispatch指针调用invoke才能得到用来读取集合的枚举接口。

  

STDMETHODIMP CBigParamCtl::InputArray(VARIANT vData)
{
LPBYTE p ;

DWORD nLen;[ 查看全文 ]

2016-02-19 标签:

把JS,vbs中的数组传递给COM组件,Activex的相关文章

手机页面
收藏网站 回到头部