DLL在Qt中的创建与使用

这篇博客介绍了在Qt环境中如何创建和使用DLL动态链接库。内容包括动态链接库的基本知识、Qt中生成动态链接库的两种方法(使用库和插件类QPlugin)以及调用DLL的两种方式(显式链接和隐式链接)。详细讲解了Qt的QLibrary类在显式链接中的应用,以及如何通过虚函数表和QPluginLoader类进行调用。同时还提供了源代码示例,展示如何调用DLL的全局函数和类对象成员函数。
摘要由CSDN通过智能技术生成

学习之前先了解一下链接库的基本知识链接库预备知识

库包含静态链接库 动态连接库 (动态装载:静态绑定与动态绑定)
目前以lib后缀的库有两种,
一种为静态链接库(Static Libary,以下简称“静态库”), 包含了实际的代码和符号
一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。 包括地址符号表。
动态链接库的调用 隐示连接 与 显示连接

对Qt动态链接库的生成方法,主要包括:

1使用Qt中的库

2使用Qt的插件类QPlugin


对QT动态链接库的调用方法,主要包括:

1、显式链接DLL,调用DLL的全局函数,采用Qt的QLibrary方法

2、显链接DLL,调用DLL中类对象、成员函数。(通过对象即可实现类成员函数的调用)

①用虚函数表的方法,这也是COM使用的方法,利用Qt的QLibrary技术调用;

用Qt的QPluginLoader类直接调用生成的DLL插件类对象。

3、隐式链接DLL:调用DLL全局函数以及类对象、成员函数。


显式连接

常Windows下程序显示调用dll的步骤分为三步(三个函数):LoadLibrary()、GetProcAdress()、FreeLibrary(),其中,

LoadLibrary() 函数用来载入指定的dll文件,加载到调用程序的内存中(DLL没有自己的内存!)。GetProcAddress() 函数检索指定的动

态链接库(DLL)中的输出库函数地址,以备调用。FreeLibrary() 释放dll所占空间。

Qt中的显式调用DLL使用采用Qt的QLibrary方法

QLibrary类显示链接调用DLL的步骤:load()、resolve(const char * symbol )、unload()与之对应


隐式链接

需要三个文件,头文件(.h)、导入库文件(.lib)、动态链接库(.dll),具体步骤如下:

1、首先我们把 .h 与 .lib/.a 文件复制到程序当前目录下,然后再把dll文件复制到程序的输出目录

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值