COleSafeArray二維陣列的使用注意

2021-08-04 10:55:33 字數 604 閱讀 7414

最近在做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填充的,單獨的列不行。很奇怪?

參考:

COleSafeArray二維陣列的使用注意

安全陣列二維陣列的形式行與列的定義與正常的二維陣列定義相反。colesafearray olesawrite long parray null 用於定義陣列的維數和下標的起始值 safearraybound sabwrite 2 sabwrite 0 celements pixel max row ...

二維陣列與二維指標

1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...

二維指標和二維陣列

二維指標和二維陣列有三種形式 1,type ptr 2,type ptr或者type prt 3,type prt 三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。1,type ptr 表示乙個指向指標的指標 但是在一開始宣告的時候 type ptr ptr到底指向幾個指標是不知道的...