[C++] VS 2022演练 - 创建和使用用动态连接库(DLL) (详细图文)

发布时间:2024年01月18日

什么是动态连接库?

动态链接库(Dynamic Link Library,简称DLL)是一种特殊的文件格式,它可以被多个程序同时共享和调用。当一个程序需要使用某个功能时,它会请求操作系统加载相应的DLL文件,并将函数地址注入到程序的内存空间中。这样,程序就可以像使用本地函数一样调用DLL中的函数,而不需要知道DLL的具体实现细节。

动态链接库的主要优点是它可以减少程序的大小,因为多个程序可以共享相同的DLL文件。此外,通过动态链接库,程序可以在运行时加载和卸载所需的功能,这使得程序更加灵活和可扩展。

前置条件

安装vs 2022社区版和“使用C++的桌面开发”相关组件,具体可以阅读:

[Visual Studio] 基础教程 - Window10下如何安装VS 2022社区版

演练介绍

本文将会创建一个MathLibrary 的C++ 动态连接库和一个MathClient的 C++控制台程序去调用MathLibrary.dll,2个项目都放置在同一个解决方案的“DLLDemo”目录中,最后效果如下图所示:

创建空白解决方案

1)在菜单栏上,选择“文件”>“新建”>“项目”,打开“创建新项目”对话框 ,选择“空白解决方案”。

创建 DLL 项目

 ?????将创建一个 DLL 项目,添加代码,并生成它。 首先,启动 Visual Studio IDE,并在需要时登录。

在 Visual Studio 2022 中创建 DLL 项目

1)在菜单栏上,选择“文件”>“新建”>“项目”,打开“创建新项目”对话框 。

2)在对话框顶部,将“语言”设置为“C++”,将“平台”设置为“Windows”,并将“项目类型”设置为“库”。

3)从经过筛选的项目类型列表中,选择“动态链接库(DLL)”,然后选择“下一步”。

4)在“配置新项目”页面,在“项目名称”框中输入“MathLibrary”,以指定项目的名称。 把默认“位置”修改为你希望保存的目录。

5)选择“创建”按钮创建项目。

创建解决方案后,就可以在 Visual Studio 中的“解决方案资源管理器”窗口中看到生成的项目和源文件了。

备注:这里我使用了“解决方案文件夹”来给相关Demo做归类,这也是为什么上面步骤 4)中修改了项目保存的位置目录。

目前,此 DLL 并没有起到很大的作用。 接下来,创建一个头文件来声明 DLL 导出的函数,然后将函数定义添加到 DLL,使其具备更强大的功能。

将头文件添加到 DLL

1)若要为函数创建头文件,请在菜单栏上选择“项目”>“添加新项”。

2)在“添加新项”对话框的左窗格中,选择“Visual C++”。 在中间窗格中,选择 “头文件(.h)”。 指定 MathLibrary.h 作为头文件的名称。

3)选择“添加”按钮以生成一个空白头文件,该文件显示在新的编辑器窗口中。

4)将头文件的内容替换为以下代码:

// MathLibrary.h - Contains declarations of math functions
#pragma once

#ifdef MATHLIBRARY_EXPORTS
#define MATHLIBRARY_API __declspec(dllexport)
#else
#define MATHLIBRARY_API __declspec(dllimport)
#endif

// The Fibonacci recurrence relation describes a sequence F
// where F(n) is { n = 0, a
//               { n = 1, b
//            
文章来源:https://blog.csdn.net/u011775793/article/details/135615070
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。