vs2019创建动态库,包含普通函数,类,C语言函数
- 打开vs2019,创建一个动态链接库
![1](https://img-blog.csdnimg.cn/2438c99b99f949fea8f5851008039a13.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
在头文件和源文件中分别创建DLLTest.h、DllTest.cpp
![在这里插入图片描述](https://img-blog.csdnimg.cn/813c12fe01d94cbd9cfdaa464dc3547b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
#ifndef DLLTEST_H
#define DLLTEST_H
#ifdef DLLTEST_
#define DLLTEST _declspec(dllexport)
#else
#define DLLTEST _declspec(dllimport)
#endif
DLLTEST int add(int a, int b);
class DLLTEST DLLTest {
public:
int mul(int a, int b);
int div(int a, int b);
};
extern "C" {
DLLTEST int csub(int a, int b);
}
#endif
![在这里插入图片描述](https://img-blog.csdnimg.cn/28f0ffe70c194000bb53eefd9342f653.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
#include"pch.h"
#include"DLLTest.h"
#include<iostream>
using namespace std;
int add(int a, int b) {
return a + b;
}
int DLLTest::mul(int a, int b) {
return a * b;
}
int DLLTest::div(int a, int b) {
return a / b;
}
int csub(int a, int b) {
return a - b;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/b63f78922d5142c59fa5c02b39dabb34.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
- 这里生成Relase × 64,点击生成解决方案,记得要在cpp文件中加入#include"pch.h"
- 右键点击解决方案-添加-新建项目-控制台应用(或者空白应用都可以,控制台有写好的模板可以参考)
![在这里插入图片描述](https://img-blog.csdnimg.cn/69e97c1112984cc1971ef02857eecc42.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
#include <iostream>
using namespace std;
#include"DLLTest.h"
int main()
{
std::cout << add(1, 0) << endl;
DLLTest dt;
std::cout << dt.mul(2, 1) << endl;
std::cout << dt.div(3, 1) << endl;
std::cout << csub(5, 1) << endl;
getchar();
return 0;
}
- 需要配置新建的项目,右键点击属性,最终选取自己建的动态库
![](https://img-blog.csdnimg.cn/84069073b6b7456c99b1d54e8ef5e1e4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
- 配置连接器的附加依赖项,其中.lib文件是在生成的×64的Relase中
![在这里插入图片描述](https://img-blog.csdnimg.cn/3df8d89fe7bf42cf90cac1d8e517b489.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
- 配置链接器中的常规附加库目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/32204f12ada04a988139fcf8bc2570ee.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
- 最终将项目设置为启动项目,点击本地调试器运行即可!
![在这里插入图片描述](https://img-blog.csdnimg.cn/88a3212fa90a4eada21c322578ff94d2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ1NETmRrMTk5Nw==,size_20,color_FFFFFF,t_70,g_se,x_16)