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实现不同平台动态库的调用。