- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
QT5编写与调用DLL动态库终极实践
QT5编写和调用DLL动态库的终极实践
如今,使用QT编程的人越来越多,但由于缺乏相关的中文文档,使得大家在学习的过程中偶有碰壁,网上的大多也有疏漏税,即使照着做也未必能成功。今天给大家讲讲QT5.02编写和调用DLL动态库的编程实践,按照以下方法可以确保你对DLL编写和调用少走变路。
步聚一:
编写所需的DLL文件,如下图创建C++库文件工程。类型选择此处选的是动态库。工程名dll,生成的类名为Dll。
如下图,在dll.h 头文件中加入函数SHOW。
在dll.cp中编写该函数的实现。此处我让函数打开一个窗口并在应用程序输出中输出“OK”字符。顺便讲一下在DLL编写时如何加入容积资源文件。依次点击“文件”菜单选择“新建文件或项目”然后如图选择“QT设计师界面类”
生成的文件及类名如下图:
Dll.cpp文件show函数的实现代码:
#include dll.h
#include qdebug.h
#include dialog.h
Dll::Dll()
{
}
void Dll::show(){
Dialog *wi=new Dialog();
wi-show();
qDebug()ok;
}
到这里,DLL文件的编写结束。最后一步就是构建该程。在该程名字上点鼠标右键,再选择构建。
接下来编写测试工程,类型为QT GUI应用。工程名字为PO,
在po.pro文件中加入LIBS+=..\dll.DLL,完整代码如下:
#-------------------------------------------------
#
# Project created by QtCreator 2013-08-06T10:19:12
# LIBS+=D:\c\po\dll.dll
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = po
TEMPLATE = app
LIBS+=..\dll.DLL
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h \
dll.h \
dll_global.h
FORMS += mainwindow.ui
在mainwindo.ui加一个按纽,并添加单击槽函数。完整代码如下:
#include mainwindow.h
#include ui_mainwindow.h
#include dll.h
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui-setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
Dll *pd=new Dll();
pd-show();
}
此处切记导入dll.h 头文件。关键步聚来了,我们需要把dll工程中的所有头文件COPY到po工程目录下,并且在po工程名上点右键选择“添加现有文件”,把COPY过来的头文件全部加入到工程的树型列表中。
并且把dll工程生成的DLL文件COPY到po工程的debuG目录下。路径搞不清的的看图,很多网上教程没说这一步,其实这才是大家调用不成功的关键原因之一。
最终运行效果如下:
文档评论(0)