使用Visual Studio生成dll 并在项目中使用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)
#endif
extern "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.执行程序
双击程序执行