使用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 (与前面定义的保持一致)
3.生成dll
将编译模式改为Release, 然后检查项目的配置
Ctrl+B生成 然后在Release目录下可以看到生成的TestDLL.dll和TestDLL.lib文件
二、使用dll
1.创建项目
创建一个空项目,命名为UseDLL,项目只有main.cpp一个文件
2.复制文件
在UseDLL.sln的目录中 创建include和lib文件夹
将TestDLL项目中的TestExport.h文件复制到include目录中
将生成的TestDLL.lib文件放到lib目录中
文件名和文件夹的位置并不是一定的 只要与后面配置的路径一致即可
3.配置项目(UseDLL)
右键项目----属性
C/C++ ——常规 —— 附加包含目录 —— 添加include目录的位置
链接器 ——常规 —— 附加库目录 —— 添加lib目录的位置
链接器 ——输入 ——附加依赖项 —— 添加TestDLL.lib
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文件相同的文件夹中
6.执行程序
双击程序执行