创建动态链接库

  1. 创建一个项目

  2. 选择library的C++库,下一步。

  3. 选择共享库,输入动态库的名字,选择创建路径,下一步

  4. 选择编译环境,下一步

  5. 选择QTCore模块,该模块提供核心的非图形用户接口功能,所有其它模块都依赖这个模块,继续下一步,直到完成。

    会看到工程中有如下文件:

编写如下代码:

testdll.h

#ifndef TESTDLL_H
#define TESTDLL_H #include "testdll_global.h" class TESTDLLSHARED_EXPORT TestDll
{ public:
TestDll(); int sum(int a,int b);
}; #endif // TESTDLL_H
`testdll.cpp`
```cpp
#include "testdll.h" TestDll::TestDll()
{
} int TestDll::sum(int a, int b)
{
return a+b;
}
  1. 构建项目,会生成如下TestDll.dllTestDll.lib文件。

使用动态链接库

  1. 创建一个控制台应用程序TestExe;
  2. 把刚刚生成的TestDll.lib文件放到TestExe程序目录下;然后选中项目TestExe,右键选择添加库,选择外部库,把TestDll.lib添加进来;

  3. .pro文件中会增加如下几行:

  4. 编写main.cpp
#include <QCoreApplication>

#include <stdio.h>
#include "testdll.h"
#include "testdll_global.h" int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv); TestDll test;
printf("ret = %d\n",test.sum(3,4)); return a.exec();
}
  1. 然后执行qmake-构建,构建结束后要把TestDll.dll放到生成TestExe.exe的文件夹内,然后点击运行,如下即成功。

【QT】创建动态链接库及使用的更多相关文章

  1. 深度解析 Qt 中动态链接库

    本文介绍的是Qt 中动态链接库,现在有些软件有自动升级功能,有些就是下载新的DLL文件,替换原来的动态链接库,MFC好象也有类似机制,Qt还有一种方式,就是把一个QWidget子类,编译成动态链接库. ...

  2. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数

    QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...

  3. Qt创建窗体的过程

    版权声明 本文为原创作品,请尊重作者的劳动成果.转载必须保持文章完整性,并以超链接形式注明原始作者“ tingsking18”和 主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口 ...

  4. [原创]VS2010中创建动态链接库及其调用

    [原创]VS2010中创建动态链接库及其调用 一.创建动态链接库 在VS2010中创建动态链接库的步骤如下: 1)生成->编译->生成MyDll 二.调用 当调用DLL中的方法,程序编译产 ...

  5. Qt创建堆叠窗口

    1.QT创建堆叠窗口使用类,但是使用它时主窗口不能是MainWindow,否则会出现布局错误,本例中使用基类为QDialog QStackedWidget 2.可以配合列表框QListWidget和Q ...

  6. Qt532.【转】Qt创建鼠标右键菜单

    ZC:可以通过 设置  (QWebView*)->setContextMenuPolicy(NoContextMenu); 来关闭 QWebView的默认右键菜单 Qt创建鼠标右键菜单_疯华正茂 ...

  7. QT源码解析(七)Qt创建窗体的过程,作者“ tingsking18 ”(真正的创建QPushButton是在show()方法中,show()方法又调用了setVisible方法)

    前言:分析Qt的代码也有一段时间了,以前在进行QT源码解析的时候总是使用ue,一个函数名在QTDIR/src目录下反复的查找,然后分析函数之间的调用关系,效率实在是太低了,最近总结出一个更简便的方法, ...

  8. QT创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束的简单示例

    QT创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束的简单示例 部分代码: // 创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束 QMenu *pDialog = mBar->ad ...

  9. qt创建无qt工程

    qt创建无qt工程,cmake . eclipse 编写makefile  代码

  10. Linux下Qt创建共享库与链接共享库详解

    随着程序写的逐渐变多,或多或少的我们都会使用别人写好的库:或者我们不想让别人看到我们的一些核心程序,可以将核心程序封装成库.本次和大家分享的是在Ubuntu下使用Qt生成共享库以及在Qt中链接共享库的 ...

随机推荐

  1. 【学习笔记】XR872 GUI Littlevgl 8.0 移植(显示部分)

    LVGL 介绍 官方网站:LVGL - Light and Versatile Embedded Graphics Library 源码位置:GitHub - lvgl/lvgl: Powerful ...

  2. AI 制作 3D 素材|基于 AI 5 天创建一个农场游戏,第 3 天

    欢迎使用 AI 进行游戏开发! 在本系列中,我们将使用 AI 工具在 5 天内创建一个功能完备的农场游戏.到本系列结束时,您将了解到如何将多种 AI 工具整合到游戏开发流程中.本文将向您展示如何将 A ...

  3. 12月8日内容总结——Django推导流程,Django模块的下载和基本使用、Django的应用和目录结构讲解、Django三板斧

    目录 一.纯手撸web框架 二.基于wsgiref模块 三.代码封装优化 四.动静态网页 五.jinja2模块 六.前端.后端.数据库三者联动 七.python主流web框架 八.django简介 1 ...

  4. Kubernetes(k8s)控制器(三):ReplicationController

    目录 一.系统环境 二.前言 三.ReplicationController概览 四.ReplicationController工作机制 五.创建ReplicationController 六.扩展r ...

  5. ARM启动顺序

    iROM(也叫BL0)的作用:   初始化系统时钟,设置看门狗,初始化栈和堆   加载BL1 BL1的作用:   初始化RAM , 关闭Cache , 设置栈   加载BL2 BL2的作用:   初始 ...

  6. 843. n-皇后问题

    题目: 这 道 题 呢 唯 一 一 点 与 其 他 题 目 不 同 之 处 就 是 它 有 有 3 个 v i s 数 组 以及是一行一行深搜的. 主要思路为: 从第一行 到第n行,一行放一个,这一行 ...

  7. qt元对象系统之 Q_OBJECT宏

    宏展开是这样 #define Q_OBJECT \ public: \ QT_WARNING_PUSH \ Q_OBJECT_NO_OVERRIDE_WARNING \ static const QM ...

  8. JZOJ 1040. 【GDOI2007】夏娜的菠萝包

    状压玩疯了 \(Code\) #include<cstdio> #include<iostream> #include<cstring> using namespa ...

  9. 题解 P4448

    如果这不是一道原题,这道题出的还不错,是个比较毒瘤的数数.由于我太菜了反正我自己没有做出来后面的 dp,zyf 巨佬教的. 不过听说合肥六中某巨佬当年也没做出来,平衡了雾 但问题是这道题是原题,我安徽 ...

  10. php中 mysql 中文乱码解决办法

     首先要保证是utf-8编码或者支持中文的编码 2.Windows下修改方法 MySQL安装目录下的my-default.ini改为my.ini文件 [client]节点 default-charac ...