Qt使用QAxObject操作Excel,在线程中调用失败
前几天在论坛学到了如何使用QAxObject操作Excel表格,现在已经能够成功调用,实现了对Excel表格数据的读取。
但是今天在改进代码过程中却遇到了奇怪的问题:
由于连续读取Excel表格大量数据是个耗时操作,阻塞了GUI线程,我决定使用多线程机制。新建一个QThread子类,在run函数加入Excel连接的语句。于是问题出现了,同样的代码,在GUI线程下执行,没有问题,在新建的线程里面执行,却报了如下错误:
CoCreateInstance failure (??δ???? CoInitialize??) QAxBase::setControl: requested control Excel.Application could not be instantiated
QAxObject * excelApplication = new QAxObject("Excel.Application");
QAxObject * excelApplication = new QAxObject("Excel.Application"); excelApplication->dynamicCall("Quit()"); qDebug() << tr("------分隔符------"); mt = new myThread(); mt->start();
QAxObject * excelApplication = new QAxObject("Excel.Application");
"------分隔符------" CoCreateInstance failure (??δ???? CoInitialize??)QAxBase::setControl: requested control Excel.Application could not be instantiated