QLibrary实现机制

1、windows动态库操作函数:
1) LoadLibrary,装载动态库
2)GetProcAddress,获取要引入的函数,将符号名或标识号转换为DLL内部地址。
3)FreeLibrary,释放动态链接库。

2、linux和unix动态库操作函数:
1)dlopen,打开动态库
2)dlsym,获取函数执行地址
3)dlclose,关闭动态库
4)dlerror,动态库错误
查看Qt源码可知:
bool QLibrary::load ()调用了load_sys;
bool QLibrary::unload ()调用了unload_sys;
void * QLibrary::resolve ( const char * symbol )调用了resolve_sys。

load_sys在windows下调用LoadLibrary,unload_sys调用了FreeLibrary,resolve_sys调用了GetProcAddress。在linux平台上load_sys调用了dlopen,unload_sys调用了dlclose,resolve_sys调用了dlsym。从而QLibrary实现不同平台动态库的调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值