说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

请问:如何从VARIANT类型的数组中取数据?

编辑:说三道四文库 发布时间:2018-02-24 04:51
HTML文档下载 WORD文档下载 PDF文档下载
我用的一个函数的返回值是一个VAVRIANT的数组,如何能把它的每一个元素取出,
先谢谢各位的指导!
VARIANT vRes;
CString str;
//.....
str=(char*)(unsigned char*)vRes.parray->pvData;
可数组的每个元素又是一个字符的数组
extern VARIANT v;
if (v.vt == (VT_ARRAY | VT_UI1) && v.parray->rgsabound->cElements > 0)
{
void* pDest;

SafeArrayAccessData(v.parray, &pDest); // Get the data
BYTE buffer = new BYTE[v.parray->rgsabound->cElements];
memcpy(buffer, (BYTE*)pDest, RootFld.parray->rgsabound->cElements);
SafeArrayUnaccessData(v.parray);     // Unaccess it.
//use buffer and delete[]如果你不COPY下来也可以,不过用完了SafeArrayUnaccessData吧
}
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘