• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用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 );
        CComSafeArrayVARIANT> 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

    上一篇:几段非常有用的脚本(来自微软网站,由downmoon精心收集)
    下一篇:VBS教程:VBScript 基础-VBScript 变量
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    使用SAFEARRAY返回的代码 使用,SAFEARRAY,返回,的,代码,