VS2022环境下C++ DLL动态链接库的编写和调用

一、编写DLL动态链接库

1、新建动态链接库项目

2、新建类

3、宏定义

#ifdef DLL_API
# define DLL_API _declspec(dllexport)
# else
# define DLL_API _declspec(dllimport)
#endif

4、使用宏定义修饰类

/*h*/
#pragma once

#ifdef DLL_API
# define DLL_API _declspec(dllexport)
# else
# define DLL_API _declspec(dllimport)
#endif

class DLL_API Add
{
public:	
	Add();
	~Add();
	static int add(int a, int b);
};

/*cpp*/
#include "pch.h"
#include "Add.h"

Add::Add()
{

}
Add::~Add()
{

}

int Add::add(int a, int b)
{
	return a + b;
}

二、调用DLL动态链接库

调用DLL动态链接库大致有两种方法:

一种是“隐式调用”,需要.h头文件、.lib符号文件、.dll动态库文件;

一种是“显示调用”,需要.dll动态库文件;

此处介绍第一种调用方式。

1、创建项目

2、项目属性 -> C/C++ -> 常规 -> 附加包含目录

在此处指定.h文件的路径。

3、项目属性 -> 链接器 -> 常规 -> 附加库目录

在此处指定.lib文件路径。(一般把.lib文件和.dll文件存放在相同位置)

4、 项目属性 -> 链接器 -> 输入 -> 附加依赖项 

在此处指定.lib

5、在项目中#include链接库的.h文件


参考资料:

1、哔哩哔哩-老蓝的程序实践

Visual Studio 2019-显式调用C++动态库_哔哩哔哩_bilibili

2、CSDN-C++编写DLL动态链接库的步骤与实现方法

C++编写DLL动态链接库的步骤与实现方法_Yolov5动态链接库DLL导出(tensorrt版本——Labview调用)-其它代码类资源-CSDN下载