本文主要是介绍qt和VS动态库调用心得,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 动态库调用
1.1 QT动态库调用
1.1.1 创建一个动态链接库步骤
1)create C++类库
2).pro文件里增加路径DESTDIR= ..\MyDebug
3)编译
注:主要的不同,两点:增加了一个***_global.h和class***SHARED_EXPORT
1.1.2 调用动态链接库
1).pro文件里增加DESTDIR= ..\MyDebug,也可不增加,主要确定目录;
2).pro增加INCLUDEPATH += ../***
LIBS+= -L$$DESTDIR -lsld
3)RE
1.2 VS动态库调用
1.2.1 VS动态库调用步骤
动态库调用之前,可以先查看其导入函数,方法:
进入.dll所在目录,执行:
dumpbin -exports ***.dll
1)创建动态链接库
.c文件,增加_declspec(dllexport)
2)调用动态链接库
(1)声明函数
Extern “C”
_declspec(dllimport)
(2)加载lib附加依赖项
(3)拷入.dll到执行文件.
1.2.2 关于头文件
经过以上两步,已经可以调用动态库了.但没有函数声明,调用时显得不明朗.
一般,创建动态库时增加头文件,对函数声明
注:该头文件仅供外部调用,动态库不用.
也可以增加一个动态库和外部调用均适用的头文件,主要在头文件和源文件中增加定义
#define DLL_API
1.2.3 导出类
1.2.4 库导出函数名字
Extern “C”
_stdcall标准调用约定
.def文件约定函数名
1.2.5 动态调用动态库
Loadlibrary
freelibrary
1.3 QT动态库调用通用规则
主要处理三个文件:.h .lib .dll
1.3.1 .h头文件处理
1).pro文件中增加
HEADERS += ***.h\
.h
2)用到的.cpp文件中增加头文件调用
#include“.h”
3)将头文件复制进工程目录
1.3.2 .lib静态库调用处理
.pro中增加.lib调用链接
LIBS += -LD:/test/***.lib(绝对路径) -l***(静态库名字,不加.lib)
也可将***.lib文件复制进工程目录中,直接调用
LIBS += ***.lib
1.3.3 .dll动态库调用处理
将动态库复制进可执行文件所在目录.
1.3.4 调用约定
注意:
调用约定的问题,_stdcall , estern “C” __declspec(dllexport/import)
参考调用示例:http://download.csdn.net/detail/u013359794/9539297
这篇关于qt和VS动态库调用心得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!