- 使用Visual Studio 2019创建DLL
- 新建动态链接库(DLL)项目,此处我的项目名称为DLL。
- 编写自己的头文件。
-
#pragma once #ifdef DLL_EXPORTS #define DLL_API __declspec(dllexport) #else #define DLL_API __declspec(dllimport) #endif extern "C" DLL_API int test(int, int);
注意:DLL_EXPORTS为项目名称_EXPORTS,否则生成解决方案会出现dll链接不一致的警告。
-
- 编写自己的源文件。
-
#include "pch.h" #include "DLL.h" int test(int a, int b) { return a + b; }
注意:一定要包含pch.h文件,VS2017之前为stdafx.h。
-
- 生成解决方案。至此DLL创建成功,我们需要的头文件(.h),库文件(.lib)和动态链接文件(.dll)已经全部具备。
- 使用DLL
- 创建控制台项目。
- 编写测试程序。
-
#include <iostream> #include "DLL.h" int main() { std::cout << "Hello World!\n" << test(1, 2) << std::endl; }
-
- 将DLL头文件导入项目包含目录中。
-
- 在解决方案资源管理器中右击项目打开属性页。
- 选择 ”配置属性“ 》 ”C/C++“ 》”常规“。
- 在附加包含目录中添加头文件所在目录路径(DLL项目的路径)。
- 确定保存更改。
- 将DLL库文件添加到项目中。
- 在解决方案资源管理器中右击项目打开属性页。
- 选择 ”配置属性“ 》 ”链接器“ 》”输入“。将lib库文件名添加到附加依赖项。
- 选择 ”配置属性“ 》 ”链接器“ 》”常规“。将lib库文件所在目录路径添加到附加库目录,可以用$(IntDir)宏来替代具体路径。例如完整路径为F:\VC\TEST\DLL\x64\Debug,用宏替换为F:\VC\TEST\DLL\$(IntDir)
- 确定保存更改。
- 生成后事件复制DLL。
- 在解决方案资源管理器中右击项目打开属性页。
- 选择 ”配置属性“ 》 ”生成事件“ 》”生成后事件“。
- 在命令行中写入xcopy /y /d "F:\VC\TEST\DLL\$(IntDir)DLL.dll" "$(OutDir)"
- 确定保存更改。
- 至此头文件,库文件和动态链接库文件已经都包含到项目中。生成解决方案就可以运行了。