如果要想正常使用动态库的东西,首先需要确定动态库的东西是被可导出的,然后再确定对动态库的东西进行导入的问题。链接动态链接库有,两种方法:静态链接和显式链接。本文只讲解如何静态链接动态链接库。
重要知识点:
#define DLLexprot __declspec(dllexport) //dll库里用的,用于导出dll库的东西
#define DLLimport __declspec(dllimport) //程序里用的,用于导入dll库的东西
在导入dll库的头文件时,要把头文件原来的#define DLLexprot __declspec(dllexport) 替换成导入的宏#define DLLimport __declspec(dllimport)
以上是经验,接下来是导入DLL库的步骤
一、将动态链接库(既dll文件)放入debug(既你程序的exe可执行文件所在的位置),将头文件(既 .h为后缀的文件名)和链接文件(既后缀名为 .lib 的文件)放入到程序的根目录下(既程序的头文件(.h)和源文件( .cpp)文件所在的位置)
二、将你的动态链接库的头文件导入到项目中
点击头文件--->右击---->添加---->添加现有项
添加到程序后,修改头文件,把头文件原来的#define DLLexprot __declspec(dllexport) 替换成导入的宏#define DLLimport __declspec(dllimport)
例子如下:总结一点就是:导入程序的头文件是修改后的头文件,修改的方面有两个:一个是把导出宏变为导入宏,另一个是删掉你不想给别人看的东西
dll原来的头文件
修改后的头文件
三、导入链接
直接用#pragma comment(lib, "MFCDLL.lib")语句直接导入,在这MFCDLL.lib是我的链接文件名,这个方法是用相对路径的方法,需要你把lib文件放入程序的头文件(.h)和源文件( .cpp)文件所在的位置
也可以直接使用绝对路径
#pragma comment(lib, "F:\\ MFCDLL.lib")
接下来就可以直接使用啦;
最最最重要的一点,导入程序的头文件跟dll库编译的头文件是不一样的,切记切记。。。。