hi masterz ,would u please make a example with safearray method for me based on my code above?
 

解决方案 »

  1.   

    用VARIANT做参数
    用SAFEARRAY处理
    例:
     1。输入数组到COM中
      STDMETHODIMP  CTestCom1::vb2vc(VARIANT  buffer)
      { 
          long  dim=SafeArrayGetDim(buffer.parray);
          long  ubound;
          long  lbound;      SafeArrayGetUBound(buffer.parray,dim,&ubound);
          SafeArrayGetLBound(buffer.parray,dim,&lbound);
          BSTR*  buf;
          BSTR  pd[2];
          SafeArrayAccessData(buffer.parray,(void**)&buf);
          for  (int  i=lbound;i<ubound;i++)
            pd[i]=buf[i];
          }
          return  S_OK;
      }
      buffer为一维数组,存放字符串,在vb中的代码为
            Dim  oo  As  ARRAYTESTLib.TestCom1
            Set  oo  =  New  ARRAYTESTLib.TestCom1
            Dim  buf(2)  As  String
            buf(0)  =  "65"
            buf(1)  =  "anss"
            oo.vb2vc  buf