`
tzraeq
  • 浏览: 81027 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

VARIANT 用法

    博客分类:
  • C++
阅读更多
最近接触到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());
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics