COleSafeArray数组使用Redim重新定义大小,但不起作用

问题遇到的现象和发生背景

使用COleSafeArray数组存储数据,但有时长度不够,准备使用Redim重新定义大小,但发现不起作用。

问题相关代码,请勿粘贴截图
SAFEARRAYBOUND sab[2];
sab[0].cElements = 2;
sab[0].lLbound = 0;
sab[1].cElements = 50;
sab[1].lLbound = 0;
m_sa.Redim(sab);
运行结果及报错内容

发现重定义后还是原来的大小。

不错不错,自己解决最好

找到原因了,原来是第1维和第2维搞反了。
sab[0].cElements = 50;
sab[0].lLbound = 0;
sab[1].cElements = 2;
sab[1].lLbound = 0;
改成这样就可以了。