六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 33|回复: 0

VARIANT 用法

[复制链接]

升级  19.33%

19

主题

19

主题

19

主题

秀才

Rank: 2

积分
79
 楼主| 发表于 2013-1-26 12:44:56 | 显示全部楼层 |阅读模式
最近接触到C++,主要是ObjectARX的开发,中间夹杂着一些com的使用,下面介绍一下VARIANT的用法.

首先,VARIANT,是一个不知道类型的变量,通过动态设置其vt属性,来决定从它的哪个属性里来取值.下面这段程序是将VARIANT设置成一个DOUBLE的数组

CArray<double> points;VARIANT VAR;SAFEARRAYBOUND mSAB[1];mSAB[0].lLbound = 0;mSAB[0].cElements = points.GetSize();VariantInit(&VAR);VAR.vt = VT_ARRAY | VT_R8;VAR.parray = SafeArrayCreate(VT_R8, 1, mSAB);long i = 0;for(i = 0; i < mSAB[0].cElements; i++){SafeArrayPutElement(VAR.parray, &i, &points.GetAt(i));}

其实这段程序较为麻烦,今天发现一个较为简单的做法,目前试用上没发现问题,也请C++的高手们多多指点.代码如下:
COleSafeArray pointList;pointList.CreateOneDim(VT_R8,points.GetCount(),points.GetData());
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表