佚名通过本文主要向大家介绍了
怎么用VARIANT传递long类型数组。等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 怎么用VARIANT传递long类型数组。
描述:
解决方案1:
描述:
比如一个ActiceX控件有如下方法:
SetBuffer(VARIANT & propVal)
要求传递的是long 的数组,怎么转换。ColeVariant好象没有这样的构造函数。如果给的代码成功执行,给满分100
解决方案1:
_variant_t var;
LONG Count = 100;
SAFEARRAY* pSa = ::SafeArrayCreateVector(VT_I4, 0, Count);
if (pSa != NULL)
{
var.vt = VT_ARRAY | VT_I4;
var.parray = pSa;
LONG* pvData = NULL;
::SafeArrayAccessData(pSa, (void**)&pvData);
for (long i=0; i<Count; i++)
pvData[i] = i;
::SafeArrayUnaccessData(pSa);
}
SetBuffer(var);
_variant_t vTemp(8l); //8L,long型
//_variant_t vOk;
SetBuffer( vTemp );
Have a try