原来写的那个有数据泄露,改写:
stuc为自定义结构 count为传递结构的数量 p为要传递数据的首地址 varArray就是要传递的SAFEARRAY
int len=sizeof(stuc);
BYTE *pBufEx;
pBufEx=new BYTE [Count*len];
memcpy(pBufEx,&p,Count*len);
VARIANT varArray;
SAFEARRAYBOUND bound;
bound.cElements=Count*len;
bound.lLbound=0;
SAFEARRAY* psa=NULL;
psa=SafeArrayCreate(VT_UI1,1,&bound);
for (long i = 0; i < Count*len-1; i++)
{
SafeArrayPutElement(psa,&i, &pBufEx[i]);
}
delete [] pBufEx;
varArray.vt = VT_ARRAY|VT_UI1;
varArray.parray = psa;
VariantClear(&varArray);