DLL 文件调用的2种方式

一个共享库导出给用户使用的类,符号,函数等都需要使用宏Q_DECL_EXPORT来定义导出,
一个使用共享库的应用程序需要通过定义Q_DECL_IMPORT 导入共享库里的可用对象。

WIN32 平台下的DLL

使用MSVC编译,编译后会生成*.dll 与*.lib 两个文件,.dll 在程序运行时调用,.lib 在应用程序隐式调用动态链接库时使用。
使用MinGW编译,编译后会生成*.a与*.lib两个文件,.a 在程序运行时调用,.lib在在应用程序隐式调用动态链接库时使用。

动态库的调用方式:隐式链接(implicit linking) ,显示链接(explicit linking) .

隐式链接调用编译的应用程序时,用动态库的lib文件(或者.a 文件)以及 h 头文件,知道DLL中有哪些接口类和函数,编译时就隐式地生成必要的链接信息,使用DLL中的类或者函数时根据h头文件中的定义使用即可。
应用程序运行时将自动加载DLL文件。隐式链接调用主要用于同一种类型编程语言(如Qt)生成的代码的共享。

显示链接调用是只有DLL文件,知道DLL里的函数原型,使用QLibrary类对象在应用程序里动态加载DLL文件,并使用DLL里的函数。这种方式需要在应用程序里声明函数原型,并解析DLL里的函数。
显示链接:可以调用其他语言编写的DLL文件,例如:Delphi编写的DLL库文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值