您的位置:首页 > 编程语言 > Qt开发

Qt 4.8中使用ActiveQt

2015-10-18 19:21 846 查看
Qt4.8 opensource 、 Mingw 、 Windows 环境下 编译Qt自带的examples\activeqt目录下的例子发现编译错误。

好不容易找到了一个问题的解决办法

原文 http://blog.csdn.net/li_hai/article/details/7222440
曾经在Qt sdk 1.1.4下写过使用

excel = new QAxObject("Excel.Application");方法操作excel文件的程序,安装qt 4.8.0后这个程序不能正常编译了,去安装目录C:\Qt\4.8.0\lib下看,里面没有ActiveQt所需的库文件,用Qt Creator 2.4 打开源代码目录C:\Qt\4.8.0\src\activeqt中pro文件,进行debug和release编译,把生成的相应库文件.a拷贝到C:\Qt\4.8.0\lib目录,重新编译examples\activeqt,出现大片类似undefined reference to `IID_IOleObject'

解决办法:在container.pro文件的 CONFIG += qt_install_headers 添加create_prl,成为CONFIG += qt_install_headers  create_prl,使编译产生静态库的prl文件 QAxContainer.prl    QAxContainerd.prl  (debug版与release版),检查prl文件中内容是否为:

QMAKE_PRL_BUILD_DIR = C:/Qt/4.8.0/src/activeqt/container/  (参考lib目录中其他prl文件)
把prl文件也拷贝到lib目录下。把examples\activeqt 工程中的pro.user文件和影子目录删除重新bulid,错误消除,程序正常运行起来了
prl文件相关知识介绍:
/article/1700002.html

*.prl

l 这个东西容易理解,链接(link)的首字符。主要和生成与使用静态库密切相关(动态库也可以有该文件,去Qt安装目录下的lib目录下看看即可)。生成静态库时,我们需要使用下列配置(进而生成和库文件同名的 *.prl 文件) CONFIG += create_prl
当工程的TEMPLATE为app时,会自动添加如下指令(找库文件的时候,会尝试找相应的 *.prl 文件)
CONFIG += link_pri
附:导出API使用文档的方法COM是个自描述的结构,任何第三方软件是可以把这种描述化信息自动导出来的。Qt有方法可以自动导出来的,参考如下代码
QAxWidget*word=newQAxWidget("Word.Application",0,Qt::MSWindowsOwnDC);QStringdoc=word->generateDocumentation();QFileoutFile("c:/Application.html");outFile.open(QIODevice::WriteOnly|QIODevice::Append); QTextStreamts(&outFile); ts<<doc<<endl;导出后你会发现是一个非常好的HTML格式的帮助问题,里面对每一个方法都有调用的详细描述。参考帮助后就能开始自己调用了,

版权声明:本文为博主原创文章,未经博主允许不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: