COleSafeArray二维数组的使用注意

最近在做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



已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页