学习之前先了解一下链接库的基本知识链接库预备知识
库包含静态链接库 动态连接库 (动态装载:静态绑定与动态绑定)目前以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文件复制到程序的输出目录。