今儿个咱来聊聊,捣鼓代码时遇到的一个事儿——colesafearray
。这名字听着挺唬人,一开始我还真有点懵。
话说我最近在折腾一个项目,需要跟Excel打交道。你知道的,就是那种把数据从程序里倒腾到Excel表格里,或者反过来,从Excel里把数据扒拉出来。我都是一个格子一个格子地读写,那叫一个慢,跟蜗牛爬似的。后来我想,这不行,得整快点,就琢磨着能不能一次性读写一大片格子?
于是我就开始在网上搜搜,发现一个叫COleSafeArray
的玩意儿。据说这东西能批量处理数据,正合我意!不过要用它,得先把Excel的那个什么类型库给引进来,具体咋操作我给忘,反正就是按照网上的教程点几下鼠标。
然后,我就开始改代码。以前读写数据都是直接操作CRange
对象,得先把数据倒腾到COleSafeArray
里,然后再通过它来读写。这中间还涉及到数据类型的转换,因为COleSafeArray
处理的是一种叫VARIANT
的类型,反正挺绕的。不过好歹是把代码给改好。
改完之后,我一运行,还真快不少!看来这COleSafeArray
还真有点用。
后来我又遇到一个类似的问题。这回是跟串口通信有关。我需要从串口接收数据,然后把数据放到COleSafeArray
里。跟上次一样,我又是一顿折腾,总算是把代码给弄好。不过这回我在测试的时候,发现每次串口接收到数据,程序就卡住。我也不知道为查好久才发现是数组越界访问,我真是服自己。
然后又查到一个类cole variant
,看他们说这东西可以把coles a fearray
对象给包起来,可以用operator[]
访问元素,反正就是能解决我那个数组越界访问的错误,然后就上手操作。
这回捣鼓colesafearray
,也算是学到一些东西。虽然过程有点曲折,但好歹是把问题给解决。以后再遇到类似的问题,我也算是有经验。