VS2019c++装换为动态链接库 DLL
一、实验环境
VS2019、Win10
二、创建动态链接库(DLL)
首先,我们需要知道动态链接库(以下简称 DLL)的作用,我在这里总结为,可
以重复使用功能相同的代码,而不必对已经实现了的功能重新编写代码。链接库
有动态和静态两种,本文旨在记录如何实现 DLL 的创建与调用,故不对这两种链
接库做探讨。接下来让我们开始实验吧
原文链接:
https://blog.csdn.net/qq_30139555/article/details/103621955
步骤<1>:创建新项目
创建新项目–>动态链接库(DLL)
步骤<2>:配置新项目
输入“项目名称”,然后选择工程“位置”,“解决方案名称”与“项目名称”相同,是自动生成的,如果没有特殊需
求建议不要修改,不要勾选“将解决方案和项目放在同一目录中”,最后点击“创建”按钮。
步骤<3>:初始化界面
这是创建工程之后的初始化界面,其中的代码是自动生成的,我们不需要去修改!
步骤<4>:新建文件
接下来创建我们自己的 DLL:
(1)首先新创建头文件“TestDLL.h”,它的作用是用来声明需要导出的函数接口。
(2)然后新创建源文件“TestDLL.cpp”,它的作用是用来实现被声明的函数。
此时工程目录结构如下图:
至此,所有的准备工作已完毕,接下来我们开始编写代码吧!
步骤<5>:代码编写
(1)首先我们要在‘TestDLL.h’中编写如下代码:
#pragma once
#pragma comment(lib,"TestDLL.lib")
#include
using namespace std;
extern "C" __declspec(dllimport) int* face_detect(string input_pic_load, double input_h);
(2)然后我们需要在‘TestDLL.cpp’中实现在‘TestDLL.h’中被声明的 int* face_detect(string
input_pic_load, double input_h)函数,代码如下(部分代码):
至此,DLL 的代码编写完成。
步骤<6>:编译
最后一步是编译 DLL:
单击
不必担心,这是正常的现象,因为 DLL 不是可执行文件.exe,所以无法被启动,单击‘确定’即可。
如果出现的是其他错误,还需根据“错误列表”自行改正错误!
至此,DLL 的创建全部完成!
此时在 TestDLL 的工程目录下的 Debug 文件夹中会出现如下图所示的 5 个文件:
其中“TestDLL.dll”和“TestDLL.lib”是我们等会儿会用到的文件。
三、调用动态链接库(DLL)
通过上面的步骤,我们现在已经创建好了可被调用的 DLL 了,接下来需要创建一个调用
TestDLL 的 C++工程项目
步骤<1>:新建一个 C++工程项目
此处创建 C++工程项目的目的是为了测试刚刚写好的 TestDLL 库,所以和创建普通的 C++工
程项目一样没有什么区别,所以此处不再给出详细的创建过程。
下图显示的是我已经创建好了的名为“TestDLLCreated”的 C++工程项目:
步骤<2>:为编写调用代码做准备
这一步需要做以下几件事:
1. 将 TestDLL 的工程目录下的 Debug 文件夹中的“TestDLL.dll”和“TestDLL.lib”文件复制到
“TestDLLCreated”工程目录下的 TestDLLCreated 文件夹中。
注意:每个人的工程目录的路径可能不太一样,请大家因地制宜(此处用词不太准确,哈哈)!
复制到
2.将 TestDLL 的工程目录下的 TestDLL 文件夹中的“TestDLL.h”头文件复制到“TestDLLCreated”工程目录下的
TestDLLCreated 文件夹中
注意:每个人的工程目录的路径可能不太一样,请大家因地制宜(此处用词依然不太准确,哈哈)!
从
复制到
3. 将刚刚添加到“TestDLLCreated”工程目录下的 TestDLLCreated 文件夹中的“TestDLL.h”头文件导入到 VS
中的解决方案资源管理器中。
在箭头所指处右键