android c 第三方库 第三方库如何调用

您所在的位置:网站首页 qt调用dll库文件必须有lib android c 第三方库 第三方库如何调用

android c 第三方库 第三方库如何调用

2023-07-06 14:53| 来源: 网络整理| 查看: 265

库是共享程序代码的方式,主要有静态库(.lib),动态库(.dll)

静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

QT调用DLL的方式:显式调用和隐式调用。没有导入库文件(,lib文件),只有头文件(.h)与动态链接库(.dll)时,显式调用,如果三个文件都全,使用隐式调用。

显式调用的三个函数:LoadLibrary()、GetProcAdress()、FreeLibrary();

LoadLibrary载入指定的dll文件,加载到调用程序的内存中。GetProcAdress函数指定动态链接库(dll)中的输出库函数地址,以备调用。FreeLibrary释放dll所占空间。

显式调用实例:

1 #include 2 #include 3 #include 4 #include 5 #include "dll.h" //引入头文件 6 typedef int (*Fun)(int,int); //定义函数指针,以备调用 7 int main(int argc,char **argv) 8 { 9 QApplication app(argc,argv); 10 QLibrary mylib("myDLL.dll"); //声明所用到的dll文件 11 int result; 12 if (mylib.load()) //判断是否正确加载 13 { 14 QMessageBox::information(NULL,"OK","DLL load is OK!"); 15 Fun open=(Fun)mylib.resolve("add"); //援引 add() 函数 16 if (open) //是否成功连接上 add() 函数 17 { 18 QMessageBox::information(NULL,"OK","Link to Function is OK!"); 19 result=open(5,6); //这里函数指针调用dll中的 add() 函数 20 qDebug()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3