
是否有一种相对简单的方法让COM对象将数组传递给调用者?例如,我想传递原始图像(TIFF)而不是弄乱临时文件.
解决方法 尝试将safearray变量传递给COM对象.像这样将BYTE数组放入safearray变体中……bool ArrayToVariant(CArray<BYTE,BYTE>& array,VARIANT& vtResult){SAFEARRAY FAR* psarray;SAFEARRAYBOUND sabounds[1]; sabounds[0].lLbound=0;sabounds[0].cElements = (ulONG)array.GetSize();long nLbound;psarray = SafeArrayCreate(VT_UI1,1,sabounds);if(psarray == NulL) return false;for(nLbound = 0; nLbound < (long)sabounds[0].cElements ; nLbound++){ if(Failed(SafeArrayPutElement(psarray,&nLbound,&array[nLbound]))){ SafeArrayDestroy(psarray); return false; }}VariantFree(vtResult);vtResult.vt = VT_ARRAY|VT_UI1;vtResult.parray = psarray;return true;}@H_404_9@ 总结 以上是内存溢出为你收集整理的c – 使用COM传递数组?全部内容,希望文章能够帮你解决c – 使用COM传递数组?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)