> 技术文档 > 使用Visual Studio生成dll 并在项目中使用dll_visual studio生成dll文件

使用Visual Studio生成dll 并在项目中使用dll_visual studio生成dll文件

这篇文章我用到了两个项目,一个用来生成dll文件,一个则是使用dll文件

一、生成dll

1.创建项目

创建一个空项目,命名为TestDLL
TestDLL中包含TestExport.h和TestExport.cpp

// TestExport.h#pragma once#ifdef TEST_EXPORTS  #define TEST_API __declspec(dllexport) #else#define TEST_API __declspec(dllimport)#endifextern \"C\" TEST_API int Add(int a, int b);class TEST_API Student{public:Student();void Study();};
// TestExport.cpp#include #include \"TestExport.h\"TEST_API int Add(int a, int b){ return a+b;}Student::Student(){}void Student::Study(){ std::cout << \"学生学习\" << std::endl;}
2.配置项目(TestDLL)

右键项目----属性
—常规——配置类型——动态库(.dll)
—高级——目标文件扩展名——.dll
—C/C++——预处理器——预处理器定义——添加TEST_EXPORTS (与前面定义的保持一致)

使用Visual Studio生成dll 并在项目中使用dll_visual studio生成dll文件

3.生成dll

将编译模式改为Release, 然后检查项目的配置
Ctrl+B生成 然后在Release目录下可以看到生成的TestDLL.dll和TestDLL.lib文件

二、使用dll

1.创建项目

创建一个空项目,命名为UseDLL,项目只有main.cpp一个文件

2.复制文件

在UseDLL.sln的目录中 创建include和lib文件夹

使用Visual Studio生成dll 并在项目中使用dll_visual studio生成dll文件

将TestDLL项目中的TestExport.h文件复制到include目录中
将生成的TestDLL.lib文件放到lib目录中

文件名和文件夹的位置并不是一定的 只要与后面配置的路径一致即可

3.配置项目(UseDLL)

右键项目----属性
C/C++ ——常规 —— 附加包含目录 ​—— 添加include目录的位置
链接器 ——常规 —— 附加库目录 —— 添加lib目录的位置
​链接器 ——输入 ——附加依赖项​ —— 添加TestDLL.lib

使用Visual Studio生成dll 并在项目中使用dll_visual studio生成dll文件

4.编写函数
//main.cpp#include#include\"TestExport.h\"using namespace std;//这两句可以省略不写 因为TestExport.h里已经有了//并且由于没有定义TEST_EXPORTS 所以TEST_API即为__declspec(dllimport)//TEST_API int Add(int a, int b);//TEST_API Student;int main(){cout << Add(1, 2) << endl;Student s1;s1.Study();system(\"pause\");return 0;}

Ctrl+B生成 UseDll.exe

5.复制TestDLL.dll

将TestDLL.dll文件放在exe文件相同的文件夹中
使用Visual Studio生成dll 并在项目中使用dll_visual studio生成dll文件

6.执行程序

双击程序执行
使用Visual Studio生成dll 并在项目中使用dll_visual studio生成dll文件