源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用SAFEARRAY返回的代码

  • 时间:2021-11-27 17:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用SAFEARRAY返回的代码
前天碰到有人问SAFEARRAY的问题,我正好对VB SCRIPT里面如何得到COM组件返回的数组感兴趣,就试验了一下。 IDE用的是VC7.1 开始都差不多,建立工程,建立COM对象,建立方法: 接口定义: [id(2), helpstring("method GetArray")] HRESULT GetArray1([out,retval] VARIANT* v); 方法实现: STDMETHODIMP CATL3::GetArray1(VARIANT * pvaVariant) {     std::vector< float> vct;     vct.push_back(   11.4 );     vct.push_back(   12.4 );     vct.push_back(   14.4 );     CComSafeArray<VARIANT> saMatrix;     for ( int i = 0 ; i < vct.size(); ++i )     {         saMatrix.Add( CComVariant(vct[i]));     }     VariantInit(pvaVariant);     CComVariant var( saMatrix );     var.Detach( pvaVariant );     return S_OK; } 注意的一点就是:VBS或其它脚本环境中要得到返回数组参数,数组中的类型是VARIANT类型。 VBS测试脚本 Dim v4 Cnxn4.Add 1, 2  v4 = Cnxn4.GetArray1() Dim x For x = Lbound(v4) To Ubound( v4 )  MsgBox v4(x) Next
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部