您的位置:首页 > Web前端

COleSafeArray二维数组的使用注意

2017-07-27 18:15 274 查看
最近在做Excel的读写(OLE/COM),网上的参考虽多,但能用的比较少。

这次用到SetValu2的快速填充,其中使用COleSafeArray来做参数的转换。

碰到一个Bug,特此记录。(OLED_V2)

安全数组二维数组的形式行与列的定义与正常的二维数组定义相反。

COleSafeArray olesaWrite;
long *pArray = NULL;
/*用于定义数组的维数和下标的起始值*/
SAFEARRAYBOUND sabWrite[2];
sabWrite[0].cElements = PIXEL_MAX_ROW;
sabWrite[0].lLbound = 0;
sabWrite[1].cElements = PIXEL_MAX_COL;
sabWrite[1].lLbound = 0;
实际定义的数组为temp[PIXEL_MAX_COL][PIXEL_MAX_ROW];

如果定义反了,会出现excel写入出现无效值。

另外填充Excel,发现矩形和行是可以SetValu2填充的,单独的列不行。很奇怪?

参考:http://www.cnblogs.com/xianyunhe/archive/2011/09/13/2174703.html
http://blog.csdn.net/baidu_37503452/article/details/72842657


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  excel COleSafeArray