Qt动态链接库的创建和使用

一、生成dll文件

1、创建一个C++库项目。

  新建->Library->C++库,然后点击"choose";

  位置->类型,选择共享库;

  模块的勾选看情况。

  最后,工程中有3个文件。mylib.cpp、mylib.h、mylib_global.h。

2、添加内容,即库文件要实现的功能。

  例:1、创建一个ui文件

    2、修该mylib.cpp、mylib.h文件   

 1 #include "mylib_global.h"
 2 #include <QDialog>
 3 namespace Ui
 4 {
 5   class Mylib;
 6 }
 7 class MYLIBSHARED_EXPORT Mylib :public QDialog
 8 {
 9 public:
10   Mylib(QWidget *parent = 0);
11 private:
12   Ui::Mylib *ui;
13 };
1 #include "mylib.h"
2 #include "ui_mylib.h"
3 Mylib::Mylib(QWidget *parent):
4   QDialog(parent),
5   ui(new Ui::Mylib)
6 {
7   ui->setupUi(this);
8 }

3、构建工程,在生成的debug目录中可以看到生成的3个,即.a、.o和.dll文件。

二、调用dll文件

1、修改准备调用dll‘文件的工程的配置文件.pro

  #让本项目可以找到mylib.h和mylib_global.h这两个文件

  INCLUDEPATH += ../mylib

  #这一行则需要告诉编译器(注意,这里是编译器!)到哪里去找到这个 dll 文件

  #LIBS += ../build-mylib-Desktop_Qt_5_9_3_MinGW_32bit-Debug/debug/mylib.dll

2、将之前的dll文件放到本工程的源码目录下并加上头文件#include "mylib.h",即可调用连接库。

3、构建工程,将之前的dll文件放到生成的exe的同级目录下,然后程序即可运行。

附:1、在构建第一个工程的时候,可以在弹出的一个对话框中修改dll等文件的生成目录;我们可以新建目录bin_debug,将2个工程的生成文件都放到其中。

  2、似乎可以#include "../bin_debug/mylib.h"

原文地址:https://www.cnblogs.com/wangbin-heng/p/9461398.html

时间: 2024-10-09 22:16:38

Qt动态链接库的创建和使用的相关文章

QT5 动态链接库的创建和使用(QT自己做动态库给自己使用)

记录一下QT5 动态链接库的创建和使用 在文章的最后有完成的代码供下载 1.创建动态链接库 先新建一个库项目 选择chose进入下一下页面,类型选择共享库,输入一个名称:我输入的是sld 再点击下一步到 如果这里我们需要QtGui所以也勾选上了 再点击下一步直到完成 我们在.pro文件里加上 DESTDIR =..\MyDebug 它的意思是我们把生成的内容放到这个文件夹里,如果没有它会自动生成 点击项目把Shadow build 去掉勾选 设置完成后我们来实现方法测试 把sld.h修改成这样

QT5 动态链接库的创建和使用

记录一下QT5 动态链接库的创建和使用 在文章的最后有完毕的代码供下载 1.创建动态链接库 先新建一个库项目 选择chose进入下一下页面,类型选择共享库,输入一个名称:我输入的是sld 再点击下一步到 假设这里我们须要QtGui所以也勾选上了 再点击下一步直到完毕 我们在.pro文件中加上 DESTDIR =..\MyDebug 它的意思是我们把生成的内容放到这个目录里,假设没有它会自己主动生成 点击项目把Shadow build 去掉勾选 设置完毕后我们来实现方法測试 把sld.h改动成这样

LINUX系统中动态链接库的创建与使用{补充}

大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多程序员和用户的青睐.那么,在LINUX系统中有无这样的函数库呢? 答案是肯定的,LINUX的动态链接库不仅有,而且为数不少.在/lib目录下,就有许多以.so作后缀的文件,这

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

大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多程序员和用户的青睐.那么,在LINUX系统中有无这样的函数库呢? 答案是肯定的,LINUX的动态链接库不仅有,而且为数不少.在/lib目录下,就有许多以.so作后缀的文件,这

【Qt】2.3 使用Qt设计师来创建对话框

安装完Qt OpenSource之后,在开始菜单目录下会有这几个东西. 其中[Designer]是用来设计窗口界面的程序.所以现在可以使用它来设计一个对话框.在[Qt Creator]中,[设计]这一项里也可以做界面的设计. 打开[Designer],会默认弹出[新建窗体],选择[Dialog without Buttons],这会新建出一个没有任何东西的对话框. [Dialog with Buttons Bottom]和[Dialog with Buttons Right]会创建出包含[确定]

C/C++中动态链接库的创建和调用

DLL 有助于共享数据和资源.多个应用程序可同时访问内存中单个DLL 副本的内容.DLL 是一个包含可由多个程序同时使用的代码和数据的库.下面为你介绍C/C++中动态链接库的创建和调用. 动态连接库的创建步骤: 创建Dll有两种方式. 一.创建Non-MFC DLL动态链接库 1.打开File —> New —> Project选项,选择Win32 Dynamic-Link Library —>sample project —>工程名:DllDemo 2.新建一个.h文件DllDe

动态链接库的创建

fangyukuan 2010.6.20 编写DLL时的函数与一般的函数方法基本一样.但要对库中的函数进行必要的声明,以说明哪些函数是可以导出的,哪些函数是不可以导出的. 把DLL中的函数声明为导出函数的方法有两种: 一是使用关键字_declspec(dllexport)来声明. 二是在.def文件中声明. 一.使用关键字_declspec(dllexport)来声明导出函数 声明函数SayHello为导出函数语句为:int _declspec(dllexport) SayHello (); 为

VC6中创建Qt工程的创建

文章来源:http://blog.sina.com.cn/s/blog_64d015c10100sf1o.html 本文主要介绍怎么创建可以在VC6中编译的QT工程.本文所采用环境为VC++6.0+QT3.3.2. 一.打开QTdesigner,,在弹出的窗口中选择new file/project标签,选中其中的C++ project,点OK按钮,出现project setting界面,输入工程名,比如说test.pro,然后点击OK,这样QT的工程就建好了.二.添加主界面,在file->new

windows下动态链接库的创建和使用

动态链接库:顾名思义,程序运行时动态加载的库.将程序中的某些模块用动态链接库的方式发布,可以有效的减少可执行文件(.exe)的容量,实现模块与程序的分离.使用动态链接库时最重要的是 .h头文件 .lib引入库文件 .dll文件:.h文件包括类或者变量的申明,.lib文件包括包括该dll导出的变量或者函数的符号名,dll文件包含该DLL实际的函数和数据. 在使用动态库的情况下,在编译连接和执行文件时,只需要连接该DLL的引入库文件,该DLL中的函数代码和数据并不复制到可执行文件中,直到可执行程序运