给欧讲讲safearry的用法 基本用法  如 建立  绑定  插入 取出。。

解决方案 »

  1.   

    1.建立SafeArrayCreate(VARTYPE  vt, unsigned int Dims, SAFEARRRAYBOUND * rgsabound);
    其中vt是safearray中要保存数据的类型,如VT_I2, VT_I4等
    Dims是数组的维数
    rgsabound是数组每一维的定义
    SAFEARRAYBOUND的结构如下:
    typedef struct tagSAFEARRAYBOUND {
       unsigned long cElements;
       long lLbound;
    } SAFEARRAYBOUND;
    其中cElements为该维的元素个数,lLbound是数组的起始下标。
    举例建立一个10个BYTE元素的数组:
    SAFEARRRY* psa;
    SAFEARRAYBOUND rgsabound[1];
    rgsabound[0].cElements = 10;
    rgsabound[0].lLbound = 0;
    psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
    if (psa == NULL)
    {
        // 创建出错处理
    }2.给某个元素赋值
    SafeArrayPutElement3.绑定
    不知道你指的是什么。4.销毁
    使用完毕后应该调用SafeArrayDestroy来释放safearray,除非你讲这个safearray传递给别的过程或者其他程序,有别的过程或程序负责销毁。其他还有几个关于SafeArray的操作函数,具体参见MSDN