当前位置:文档之家› QT5编写和调用DLL动态库的终极实践

QT5编写和调用DLL动态库的终极实践

QT5编写和调用DLL动态库的终极实践如今,使用QT编程的人越来越多,但由于缺乏相关的中文文档,使得大家在学习的过程中偶有碰壁,网上的大多也有疏漏税,即使照着做也未必能成功。

今天给大家讲讲QT5.02编写和调用DLL动态库的编程实践,按照以下方法可以确保你对DLL编写和调用少走变路。

步聚一:
编写所需的DLL文件,如下图创建C++库文件工程。

类型选择此处选的是动态库。

工程名dll,生成的类名为Dll。

如下图,在dll.h 头文件中加入函数SHOW。

在dll.cp中编写该函数的实现。

此处我让函数打开一个窗口并在应用程序输出中输出“OK”字符。

顺便讲一下在DLL编写时如何加入容积资源文件。

依次点击“文件”菜单选择“新建文件或项目”然后如图选择“QT设计师界面类”
生成的文件及类名如下图:
#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 QtCreator2013-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目录下。

路径搞不清的的看图,很多网上教程没说这一步,其实这才是大家调
用不成功的关键原因之一。

最终运行效果如下:。

相关主题