在Windows平台开发中,C++ DLL动态链接库(Dynamic Link Library)是一种非常重要的技术。它允许我们将代码封装成独立的模块,在多个程序之间共享使用,从而提高代码复用性、降低内存占用,并便于维护和更新。
本教程将手把手教你如何创建DLL文件,以及如何在另一个C++项目中调用DLL函数。即使你是编程小白,也能轻松上手!

DLL(Dynamic Link Library)是Windows系统下的动态链接库文件,扩展名为 .dll。它包含可由多个程序同时使用的代码和数据。与静态库不同,DLL在程序运行时才被加载,因此称为“动态”链接。
我们使用Visual Studio(推荐2019或更高版本)来创建DLL项目。
MyMathDLL,点击“创建”默认会生成几个文件,我们主要修改 dllmain.cpp 和添加头文件。为了清晰,我们新建两个文件:
MyMath.h:声明导出函数MyMath.cpp:实现函数逻辑MyMath.h 内容如下:
#pragma once// 定义导出宏#ifdef MATHDLL_EXPORTS#define MATH_API __declspec(dllexport)#else#define MATH_API __declspec(dllimport)#endif// 声明两个简单函数extern "C" MATH_API int Add(int a, int b);extern "C" MATH_API int Multiply(int a, int b);说明:
__declspec(dllexport) 表示该函数将从DLL导出__declspec(dllimport) 表示该函数将从外部DLL导入extern "C" 防止C++名称修饰(name mangling),使函数名在DLL中保持简单,便于调用MyMath.cpp 内容如下:
#include "MyMath.h"MATH_API int Add(int a, int b){ return a + b;}MATH_API int Multiply(int a, int b){ return a * b;}点击“生成” → “生成解决方案”。成功后,在项目输出目录(如 Debug 或 Release 文件夹)中会生成:
MyMathDLL.dll:动态链接库文件MyMathDLL.lib:导入库文件(用于链接)MyMath.h:头文件(需手动复制供其他项目使用)现在我们创建一个控制台应用程序来测试刚才创建的DLL。
创建一个新的“控制台应用”项目,命名为 TestMyDLL。
MyMath.h 复制到 TestMyDLL 项目目录MyMathDLL.lib 和 MyMathDLL.dll 也复制到 TestMyDLL 的源文件目录(或输出目录)TestMyDLL 项目属性中,添加对 MyMathDLL.lib 的依赖:MyMathDLL.lib在 main.cpp 中写入以下代码:
#include <iostream>#include "MyMath.h" // 包含DLL的头文件int main(){ int a = 10, b = 20; std::cout << "Add: " << Add(a, b) << std::endl; std::cout << "Multiply: " << Multiply(a, b) << std::endl; return 0;}运行程序,你将看到输出:
Add: 30Multiply: 200恭喜!你已经成功创建并调用了自己的 C++动态链接库教程 中的核心示例。
extern "C",函数名会被C++编译器修饰,导致调用失败(除非使用def文件或GetProcAddress).pdb 文件一并复制,便于断点调试通过本教程,你已经掌握了如何从零开始创建DLL文件并调用DLL函数。这项技能在大型软件开发、插件系统、模块化架构中非常实用。希望这篇C++ DLL动态链接库入门指南能为你打下坚实基础!
继续练习吧!尝试在DLL中添加更多功能,比如字符串处理、文件操作等,逐步提升你的C++工程能力。
本文由主机测评网于2025-12-08发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025124590.html