您的位置:首页 > 其它

怎么从一个long型数组构建一个VARIANT结构

2012-10-22 12:46 183 查看
要搞清楚这个问题首先要明白什么VARIANT类型,这样就很容易的知道如何从一个long型数组构建一个VARIANT结构。
什么是VARIANT类型:
实际上VARIANT也只不过是一个新定义的结构罢了,它的主要成员包括一个联合体及一个变量。该联合体由各种类型的数据成员构成, 而该变量则用来指明联合体中目前起作用的数据类型。我们所关心的接收到的数据就存储在该联合体的某个数据成员中。
该联合体中包含的数据类型很多,从一些简单的变量到非常复杂的数组和指针。
既然VARIANT是一个联合体,那我们从long转换到它就有了基本思路了,我们知道联合体的一个基本特性,实际上就是一个多种类型的泛指,可以当做联合体中的任何类型来处理,最终有编译器来帮我们处理实际的细节,好多脚本语言底层的实现都是利用了联合体的这个特性,在COM中为了接口的兼容性和灵活性也使用了联合体的这个特性,具体实现方式就如@马瑜所实现的,我只说下原理哈。

long 数组转Variant


void longArray2Variant(long lData, lon lData1, long lData2, long lData3,VARIANT& var)

{

    CComSafeArray<long> arrays(4);

    arrays.SetAt(0, lData);

    arrays.SetAt(1, lData1);

    arrays.SetAt(2, lData2);

    arrays.SetAt(3, lData3);

    CComVariant src(arrays);

    VariantCopy(var, &src);

}

转自:http://www.dewen.org/q/1024
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐