记录一下QT5 动态链接库的创建和使用

在文章的最后有完毕的代码供下载

1.创建动态链接库

先新建一个库项目

选择chose进入下一下页面,类型选择共享库,输入一个名称:我输入的是sld

再点击下一步到

假设这里我们须要QtGui所以也勾选上了

再点击下一步直到完毕

我们在.pro文件中加上

DESTDIR =..\MyDebug

它的意思是我们把生成的内容放到这个目录里,假设没有它会自己主动生成

点击项目把Shadow build 去掉勾选

设置完毕后我们来实现方法測试

把sld.h改动成这样

#ifndef SLD_H
#define SLD_H#include "sld_global.h"
#include <QString>class SLDSHARED_EXPORT Sld
{
public :Sld();QString GetStr();
};#endif

它的.cpp

#include "sld.h"
#include <QDebug>Sld::Sld()
{qDebug()<<"";
}QString Sld::GetStr()
{return "aa";
}

我们那了一个測试方法返回aa

我们再新加入一个窗口供測试用

我给命名为MyDialog

把.h文件改动成

#ifndef MYDIALOG_H
#define MYDIALOG_H#include <QDialog>
#include "sld_global.h"
namespace Ui {
class MyDialog;
}class SLDSHARED_EXPORT MyDialog : public QDialog
{Q_OBJECTpublic:explicit MyDialog(QWidget *parent = 0);~MyDialog();private:Ui::MyDialog *ui;
};#endif // MYDIALOG_H

,cpp

#include "mydialog.h"
#include "ui_mydialog.h"MyDialog::MyDialog(QWidget *parent) :QDialog(parent),ui(new Ui::MyDialog)
{ui->setupUi(this);
}MyDialog::~MyDialog()
{delete ui;
}

这里什么也没做仅仅是把SLDSHARED_EXPORT加上了

好了就这样。我们构建一下就会在MyDebug目录里生成我们的dll

2.怎么使用动态链接库

新建一个Qt WidgetsApplication项目

在.pro文件中改动和上边一样加上

DESTDIR =..\MyDebug 再点击项目把shadow build 去掉

再加上

INCLUDEPATH +=../sld
LIBS += -L$$DESTDIR -lsld

第一句是把sld项目的目录包括到这个项目里来,这样我们就能直接用它里面的头文件了

第二句是告诉编译器lib在哪(我用的是vs的编译器假设 用mingw能够直接加入sld.dll)

我样在窗口上加一个button,并加入槽

.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "sld.h"
#include <QMessageBox>
#include "mydialog.h"
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{MyDialog * my =new MyDialog(this);my->show();QMessageBox * msg=new QMessageBox(this);Sld s;msg->setText(s.GetStr());msg->show();
}

好了,构建,执行看效果吧

转载于:https://www.cnblogs.com/gavanwanggw/p/7225660.html

QT5 动态链接库的创建和使用相关推荐

  1. LINUX动态链接库的创建与使用

    大家都知道,在 WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一 ...

  2. 《LINUX下动态链接库的创建与应用》

    大家都知道,在windows系统中有很多的动态链接库(以.dll为后缀的文档,dll即dynamic link library).这种动态链接库,和静态函数库不同,他里面的函数并不是执行程式本身的一部 ...

  3. linux 动态链接库的创建和使用--动态连接

    linux 动态链接库的创建和使用--动态连接 分类: C 编程 2012-03-25 17:01 568人阅读 评论(0) 收藏 举报 linuxreferencefunctiondatec /* ...

  4. LINUX系统中动态链接库的创建与使用

    大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀 的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不 同,它里面的函数并不是执行程序本身的 ...

  5. LINUX系统中动态链接库的创建和使用

    大家都知道,在windows系统中有非常多的动态链接库(以.dll为后缀的文件,dll即dynamic link library).这种动态链接库,和静态函数库不同,他里面的函数并不是执行程式本身的一 ...

  6. linux 下动态链接库的创建与使用——dlopen,dlsym

     一.引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的.所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(exec ...

  7. C++ dll 动态链接库的创建与调用

    /********************************************************/ /*DLL中的函数定义*/ /*计算x+y的值*/ int __declspec( ...

  8. Linux静态/动态链接库的创建和使用

    这篇文章转自"永远的UNIX" 原文地址:http://fanqiang.chinaunix.net/system/linux/2006-05-08/4126.shtml 和Win ...

  9. VS2010 学习C++动态链接库的创建与使用(带实例代码)

    本文只是记载下学习C++动态链接库的过程以及记录学习过程中的一些程序,好开始. 先用VS2010创建一个dll的工程,好,只看图不说话,点击finish就完成创建了... 创建头文件developer ...

最新文章

  1. 《JAVA练习题目2》 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出。
  2. 执行删除操作返回没被删除的信息
  3. 两个tplink路由器有线桥接_tplink和腾达路由器有线桥接设置图解
  4. php获取到的json数据如何处理_php – 如何从API获取JSON数据
  5. joo工作流_不要错过使用jOOλ或jOOQ编写Java 8 SQL单行代码的机会
  6. Tomcat内存释放不了、Tomcat内存溢出原因
  7. c语言中ai是什么,科普 | 什么是 cDai?
  8. Linux命令:XZ解压tar.xz后缀的压缩包
  9. mysql单库tps_简单计算mysql 的QPS,TPS
  10. android 阻尼动画,Android阻尼效果 | 自定义进阶之实现MIUI的拖动视差效果
  11. 我的世界服务器显示自己不在线,我的世界:自从拥有了自己的服务器,玩家的状态一天不如一天!...
  12. 小米12S和红米K50至尊版哪个好
  13. Intent的用法(初步)
  14. Fritzing软件绘制Arduino面包板接线图传感器模块库文件300
  15. java计算机毕业设计商场VIP管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  16. Python自动覆盖录屏软件——NIRE工作室开源软件(参数自动校正)(欢迎白嫖)
  17. CURRENT_TIMESTAMP函数精度
  18. 自动驾驶领域用到的一些数据集
  19. 基于VB算法+Picture+Timer控件制作的39种动画效果,类似屏保(完整原程序)
  20. Probit模型、Logit模型、IV-Probit模型、IV-Probit模型

热门文章

  1. Docker两个问题的讨论
  2. 牛客练习赛26B 烟花 (概率DP)
  3. mysql 无法存储joda time的datetime类型
  4. hadoop的运行机制
  5. 适配器(Adaptor)模式
  6. Ubuntu下MySQL忘记root密码重置
  7. struts2 零配置
  8. C++中WSAAsyncSelect模型的用法例程
  9. centos php 开启socket,CentOS 配置PHP支持socket扩展
  10. c#求三角形面积周长公式_此题要求三角形的面积,但是无法用公式求出,而是通过方程解决...