当前位置:编程学习 > wap >>

QT 使用QAxObject 新建excel 出现的问题

代码:

#include <QAxObject>

main()
{
    QAxObject excel("Excel.Application");
    excel.setProperty("Visible", false);
    QAxObject *workbooks = excel.querySubObject("WorkBooks");
    QAxObject *workbook;

    ...........
    .....
}

提示的错误:
CoCreateInstance failure <CoInitialize has not been called.>
QAxBase::setControl: requested control Excel.Application could not be instantiated
QAxBase::dynamicCallHelper: Object is not initialized, or initialization failed

看到有人说要安装Office, 我已经装了Office,还是会出现这个错误。

请高手帮忙 --------------------编程问答-------------------- 加上这个试试:
HRESULT r = OleInitialize(0);
if (r != S_OK && r != S_FALSE)
{qWarning("Qt:初始化Ole失败(error %x)",(unsigned int)r);}


看看这个:
http://blog.sina.com.cn/s/blog_8a7012cf01014aot.html --------------------编程问答-------------------- 对,COM/ActiveX 编程必须 CoInitialize !

在Qt下,由于 QApplication 中需要使用系统 粘贴板,已经调用过 CoInitialize 了,所以很容易被忽略这个问题。 --------------------编程问答-------------------- 非常感谢两位。
加了三行代码就通过了。还要#include <sapi.h>
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,