zoukankan      html  css  js  c++  java
  • 怎样在Qt中建立使用动态链接库

    一、建立并生成动态链接库

     
    1. 1

      我们首先在磁盘的某个位置建立一个名为DllDemo的文件夹。

      打开QtCreator,新建工程,我们选择Library,C++库,然后就是choose。

      怎样在Qt中建立使用动态链接库
    2. 2

      然后在弹出的C++库对话框我们默认类型共享库,名称为MyDll。路径就是我们刚才建立的DllDemo文件夹。然后,一直下一步,直到点击完成。

      怎样在Qt中建立使用动态链接库
    3.  

      我们来看看程序结构,以及pro文件内容。

      我可以看到系统自动生成了一个mydll_global.h的文件。

      pro内也自动生成了一些内容。可以看到TEMPLATE = lib,而不是我平时的TEMPLATE = app。

      怎样在Qt中建立使用动态链接库
    4.  

      再来看看mydll_global.h的内容。

      可以看到系统自动定义了两个宏。用于声明哪些函数是需要我们导出的。

      怎样在Qt中建立使用动态链接库
    5.  

      下面我们来给我们的代码添加点内容,以便于我们待会使用。

      首先我们在mydll.h中添加几行代码,如下图。

      注意:extern "C" MYDLLSHARED_EXPORT必须要有。

      怎样在Qt中建立使用动态链接库
    6.  

      再来看看mydll.cpp中的实现代码,都比较简单。

      怎样在Qt中建立使用动态链接库
    7.  

      代码编写完毕后,我们直接构建就行了。然后就可以看到我们生成的dll了。

      怎样在Qt中建立使用动态链接库
      END

    二、测试生成的DLL

     
    1.  

      新建一个基于Qt的控制台应用程序,名称为DllTest。依然放置在我们的DllDemo的目录下。

      怎样在Qt中建立使用动态链接库
    2.  

      建好了以后,就可以在main.cpp写代码了。我们通过QLibrary类来加载dll。

      因为要获得类对象的实例,所以我们需要将mydll.h包含进来。

      要注意的是,我没有对函数是否成功获取做检测。

      来看看我们的代码:

      怎样在Qt中建立使用动态链接库
    3.  

      代码写完后就可以构建程序了。不过要运行程序,我们还需要将刚才生成的dll拷贝到程序的同级目录。

      怎样在Qt中建立使用动态链接库
    4.  

      在IDE中运行程序,因为我生成的是debug版的程序,相关的环境变量未设置,无法独立运行。

      可以看到我们的dll工作的很好,程序运行正常。

      怎样在Qt中建立使用动态链接库
      END

    三、善用Assistant

     
    1.  

      最后我们来看看Assistant中关于QLibrary的描述。比较费解的是,Assistant中并没有对创建共享库做详细的说明,估计是这个太简单或资料太多了吧。

      怎样在Qt中建立使用动态链接库
  • 相关阅读:
    支持国产共享软件
    Win CE 5.0 增加电池电量显示
    [转]C# 系统应用之鼠标模拟技术及自动操作鼠标
    自己写的 读写 ini 配置文件类
    自己写的 Readini 类
    sizeof与strlen()、递归优化题解
    Git学习资源收集汇总
    好用的Google Chrome插件
    【转】C# Socket编程(5)使用TCP Socket
    【转】C# Socket编程(4)初识Socket和数据流
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14244138.html
Copyright © 2011-2022 走看看