VARIANT 类使用说明

VARIANT 类使用说明


varSNArray->vt = VT_EMPTY;

    char* p11 = _com_util::ConvertBSTRToString(strP11Name);
    int nResult = 0;
    CKeys keys;
    nResult = keys.InitDll(p11);
    if( 0!= nResult)
    {
        return S_OK;
    }
    string strSN = keys.GetSN();
    vector<string> vctFiles;
    int nPos = strSN.find_first_of(";");

    while(nPos != -1)
    {
        string strSN = strSN.substr(0, nPos);
        vctFiles.push_back(strSN);
        strSN = strSN.substr(nPos+1);
        nPos = strSN.find_first_of(";");
    }
    vector<string>::iterator iter = vctFiles.begin();

    //初始化,待返回数组  
    SAFEARRAYBOUND   pSab[1];//一维数组  
    pSab[0].lLbound = 0;   
    pSab[0].cElements = vctFiles.size();  //数组中元素的数量  
    SAFEARRAY   *pSa;   
    pSa=SafeArrayCreate(VT_VARIANT,1,pSab);//创建一维数组  
 
    //填数组  
    LONG i = 0;  
    while(iter!=vctFiles.end())  
    {  
        VARIANT v;  
        v.vt = VT_BSTR;  
        v.bstrVal = _com_util::ConvertStringToBSTR((*iter).c_str());
        SafeArrayPutElement(pSa,&i,&v);  
        SysFreeString(v.bstrVal);  
        iter++,i++;  
    }  
 
    //返回数组  
    varSNArray-> vt = VT_VARIANT|VT_ARRAY;  
    varSNArray->parray = pSa; //pSa是生成的一个安全数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值