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

来源:互联网 发布:mac os 启动出现j 编辑:程序博客网 时间:2024/06/06 01:17
要搞清楚这个问题首先要明白什么VARIANT类型,这样就很容易的知道如何从一个long型数组构建一个VARIANT结构。
什么是VARIANT类型:
实际上VARIANT也只不过是一个新定义的结构罢了,它的主要成员包括一个联合体及一个变量。该联合体由各种类型的数据成员构成, 而该变量则用来指明联合体中目前起作用的数据类型。我们所关心的接收到的数据就存储在该联合体的某个数据成员中。 该联合体中包含的数据类型很多,从一些简单的变量到非常复杂的数组和指针。

既然VARIANT是一个联合体,那我们从long转换到它就有了基本思路了,我们知道联合体的一个基本特性,实际上就是一个多种类型的泛指,可以当做联合体中的任何类型来处理,最终有编译器来帮我们处理实际的细节,好多脚本语言底层的实现都是利用了联合体的这个特性,在COM中为了接口的兼容性和灵活性也使用了联合体的这个特性,具体实现方式就如@马瑜所实现的,我只说下原理哈。


long 数组转Variant

  1. void longArray2Variant(long lData, lon lData1, long lData2, long lData3,VARIANT& var)
  2. {
  3.     CComSafeArray<long> arrays(4);
  4.     arrays.SetAt(0, lData);
  5.     arrays.SetAt(1, lData1);
  6.     arrays.SetAt(2, lData2);
  7.     arrays.SetAt(3, lData3);
  8.     CComVariant src(arrays);
  9.     VariantCopy(var, &src);
  10. }

转自:http://www.dewen.org/q/1024

原创粉丝点击