本文使用的开发工具是VS2019.
一、动态库的创建步骤
1.1创建工程
1、打开VS2019创建动态库项目。
2、创建完成后编译器会为我们自动添一些源文件和头文件。将编译器创建的源文件和头文件删除。
3、创建自己的源文件(DllTest.cpp)和头文件(DllTest.h)。
4、取消预编译头。在“项目->属性->C/C+±>预编译头->预编译头”的值设置为“不使用预编译头”。
1.2导出函数
如果动态库中的函数不导出,那么其他项目就不能调用动态库中的函数。也就是说其他项目只能调用动态库中导出的函数,动态库中没有导出的函数不能被其他项目调用。导出动态库的方法有多种,下面分别介绍每种导出方法:
1.2.1动态库导出方法一
使用__declspec(dllexport)
导出函数。
1.2.2动态库的导出方法二
使用模块定义文件导出
1.3动态库的使用
动态库制作完成后,在其他项目中使用时需要三个文件,这三个文件分别是:头文件(DllTest.h),lib文件(DllTest.lib),dll文件(DllTest.dll)
1.3.1隐式调用
隐式调用的步骤如下:
1、包含创建动态库的头文件(DllTest.h)
2、在“附加库目录”中添加.lib文件的路径
3、加载.lib文件(DllTest.lib)
4、整个调用代码如下:
1.3.2显示调用
1、包含Windows.h文件,因为加载库的函数(LoadLibrary)是windows API。
2、加载动态库。路径可以是绝对路径和相对路径。
3、定义函数指针
4、获取函数指针
5、动态库中函数调用
6、释放动态库
7、显示调用的整个代码如下: