VARIANT变量

来源:互联网 发布:java怎么处理并发 编辑:程序博客网 时间:2024/04/26 04:15

 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;

原创粉丝点击