win7下,qt5.7生成的程序,在xp下运行,QT+=axcontainer操作word时报错!请指点!~~

不易易 2018-08-30 09:14:14
win7下没问题,xp下报错:
QAxBase::setControl: requested control Word.Application could not be instantiated
office word已装好了,还是报这个错误!~求指点!~
...全文
646 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongmao_er 2020-12-02
  • 打赏
  • 举报
回复
楼主问题解决了么
不易易 2020-06-01
  • 打赏
  • 举报
回复
引用 3 楼 paresly 的回复:
请问如何手动初始化com库啊

HRESULT r = OleInitialize(0);
if (r != S_OK && r != S_FALSE)
{
qWarning("Qt:初始化Ole失败(error %x)",(unsigned int)r);
}
paresly 2020-05-30
  • 打赏
  • 举报
回复
请问如何手动初始化com库啊
不易易 2018-08-30
  • 打赏
  • 举报
回复
主要代码如下:


m_word=new QAxObject("Word.Application");
m_word->setProperty("Visible",QVariant(true));
//获取所有工作文档
m_document = m_word->querySubObject("Documents");


if(m_word==NULL || m_document==NULL) qDebug()<<"init word...not.ok";
else qDebug()<<"init word....ok";

//打开一个doc
m_document->dynamicCall("Open(const QString&)",currentfilepath.filePath());
//获取当前激活的文档
QAxObject *m_doc = m_word->querySubObject("ActiveDocument");
if (NULL == m_doc)
{
qDebug()<<"ERR: word open m_doc====NULL !";
return;
}
QAxObject *pRange;
pRange = m_doc->querySubObject("Range()");//获取全部内容
if (NULL != pRange)
{
filecontent = pRange->property("Text").toString();
delete pRange; //要释放内存,不然文档就被占用
pRange = NULL;
}
m_document->dynamicCall("Close(boolean",false);//关闭文档
不易易 2018-08-30
  • 打赏
  • 举报
回复
解决了!
xp下要手动初始化COM库!~

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧