VARIANT变量

 1.  直接使用VARIANT变量
a.   定义VARIANT变量
可以直接定义VARIANT类型的变量。

 

VARIANT val;

 

b.   初始化VARIANT变量
在使用VARIANT变量之前,一定要初始化。

 

VariantInit(&val);

 

c.   设置变量值
设置变量值前如果VARIANT变量中已经有值,先要清除原有数据。

 

VariantClear(&val);

val.vt = VT_I4;   // 设置类型

val.lVal = 10;    // 设置变量值

 

d.   清除VARIANT变量
在使用完VARIANT变量后,要清除变量,否则会发生内存泄漏。

 

VariantClear(&val);

 

e.   动态分配VARIANT变量
如果要动态分配VARIANT变量,应该使用标准的COM内存管理函数。

标准COM内存管理函数包括CoTaskMemAlloc、CoTaskMemFree和CoTaskMemRealloc。

 

VARIANT * pVal;

pVal = (VARIANT *)CoTaskMemAlloc(size_of(VARIANT));

VariantInit(pVal);

pVal->vt = VT_I4;

pVal->lVal = 10;

...

VariantClear(pVal);

CoTaskMemFree(pVal);

 

2.  通过CComVariant使用VARIANT变量
CComVariant是ATL对于VARIANT的简单包装。通过CComVariant可以更简单的使用VARIANT,而不必担心没有进行初始化或清除。如果没有特殊情况,应该尽量使用CComVariant而不要使用VARIANT。

以下是使用CComVariant的代码实例。

 

CComVariant Val;

Val.vt = VT_I4;

Val.lVal = 10;

// Val 不必清除

 

以下是使用CComVariant数组的例子。

 

CComVariant * pVal;

pVal = new CComVariant[10];

for (int i = 0; i < 10; ++i)

{

    pVal[i].vt = VT_I4;

    pVal[I].lVal = i + 1;

}

...

delete[] pVal;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值