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


    ********************************************************************************              Qt Creator                 *********************************************************************************************

    一、生成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"

    ********************************************************************************              VS+Qt                 *********************************************************************************************

    2018-09-20

    1、新建一个Qt的Appication工程;(工程名即解决方案名)

    2、在解决方案中新建lib工程。

      在新建的工程中,直接使用导出符即可。

    3、使用lib中的内容

    #include "../MyLib/lib1.h"
    #pragma comment(lib, "../x64/Debug/lib1.lib")

      .ui文件的导出,只能是指针

    ***********  2018.10.9  *******************************************************************************************

      生成动态链接库小结:主要有2点

    一、生成动态链接库的位置

      1、可以在配置文件(配置项)中设置

      2、在代码中指明(最好不写文件的后缀名,linux中)

    二、动态链接库对应的代码(头文件)

    三、导出类的宏,在建立动态链接库的时候自动生成;一般不需要自己操心。

  • 相关阅读:
    基于SpringBoot打造在线教育系统(6)-- 二级分类模块UI篇
    基于SpringBoot打造在线教育系统(5)-- 课程分类模块
    基于SpringBoot打造在线教育系统(4)-- SpringBoot集成ElementUI
    基于SpringBoot打造在线教育系统(3)-- 登录与授权管理
    基于SpringBoot打造在线教育系统(2)-- 深入学习JPA与Junit测试
    我只会HelloWorld,但是我却完成了一个SpringBoot项目!(1)
    Constrast Learnning
    BlazePose: On-device Real-time Body Pose tracking
    pytest---fixture作用范围
    pytest---fixture中conftest.py文件
  • 原文地址:https://www.cnblogs.com/wangbin-heng/p/9461398.html
Copyright © 2020-2023  润新知