• 5277阅读
  • 5回复

[提问]急求助!!!关于在多线程中使用QActive调用excel [复制链接]

上一主题 下一主题
离线tsinghtdh
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-06
请教大家!我现在做一个小软件,涉及从excel里读数据到sqlserver,开始的时候读取数据的函数是写在gui线程里,可是数据量一大,就得等很久,界面跟死机了一样。我就想把读取的过程开辟到一个thread里,但是遇到问题。在thread里直接新建qactive的话,直接就报错,说是not support automation,又尝试了传递已建立好的excelQActive进去,可是调用不来,报异常First-chance exception at 0x74ccc41f in WaterEstimate.exe: 0x800401F0: 尚未调用 CoInitialize。.
QAxBase: Error calling IDispatch member Count: Unknown error。各位大神给支支招啊,多谢了!
离线dbzhang800

只看该作者 1楼 发表于: 2013-08-06
离线tsinghtdh

只看该作者 2楼 发表于: 2013-08-06
回 1楼(dbzhang800) 的帖子
我试试,多谢了
离线tsinghtdh

只看该作者 3楼 发表于: 2013-08-06
回 1楼(dbzhang800) 的帖子
再请教一下,不好意思。用CoInitialize 这个函数需要#include 的头文件是什么,写进不识别。多谢了
离线XChinux

只看该作者 4楼 发表于: 2013-08-06
读的时候适时调用QApplication::processEvents();防止界面僵住。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tsinghtdh

只看该作者 5楼 发表于: 2013-08-08
回 1楼(dbzhang800) 的帖子
大神您好!我试了您的办法,行得通,建了两个基类,一个是执行线程类,一个是算法类,在算法类里调用了QActive,执行线程以算法类为参数,在run里调用算法类的计算函数cal,QActive在cal中,可是在一个地方行得通,在另一个地方就老是报QActive对象那的错,说是不能给一个线程里的类定义一个在另一线程里的对象为parent,是什么原因呢?
快速回复
限100 字节
 
上一个 下一个