这段时间有人交流关于DLL的使用,其中有些点是我当时没有能反映过了。回来后才想明白的,现在记录在案,以供翻阅。
DLL的显式调用和隐式调用
关于这点在交流是我是蒙圈的,这注意是我没有日常的知识整理没有做好。其实很简单:DLL和Lib文件的加载方式
VS的使用
- 显式调用:使用LoadLibrary载入后缀为dll的文件(动态链接库),使用GetProcAddress获取函数地址。
- 隐式调用:使用#pragma comment(lib, “XX.lib”)并引用头文件即可。(静态链接库)PS:vs中还有别的方式。
QtCreator的使用
- 显式调用:使用QLibrary对象的load方法载入后缀为dll的文件(动态链接库),使用resolve获取函数地址。
- 隐式调用:在pro中用 LIBS += XX.lib 添加,在用的地方引用头文件。(静态链接库)
DLLh和Lib使用的区别是:Dll是动态加载使用,Lib是编译到程序里面的。
DLL导出
导出变量
挖坑等填
导出函数
挖坑等填
导出类
挖坑等填
导出虚函数
挖坑等填