动态链接库Dll的编写与使用

前言

本文章主要是以一种简易的方式帮助大家编写和使用DLL。关于DLL是什么,网上有很多解说,这里就不废话了。

实现功能

1、DLL导出函数
2、DLL导出类

一、生成DLL

1、新建一个C++的空项目工程,这里取工程名为myDll
2、创建myDll.cpp和myDll.h文件
3、代码编写如下:
myDll.h文件
注:使用 __declspec(dllexport) 关键字从 DLL 中导出数据、函数、类或类成员函数

#pragma once
//导出函数
__declspec(dllexport) int Add(int a, int b);  //加法函数
__declspec(dllexport) int Sub(int a, int b);  //减法函数

//导出类
class __declspec(dllexport) CMyDll
{
public:
 int Mul(int a, int b); //乘法函数
 int Div(int a, int b); //除法函数
 };

myDll.cpp文件

#include "myDll.h"
/*函数实现*/
int Add(int a, int b)
{
 return a + b;
}
int Sub(int a, int b)
{
 return a - b;
}
int CMyDll::Mul(int a, int b)
{
 return a * b;
}
int CMyDll::Div(int a, int b)
{
 return a / b;
}

4、生成dll 动态链接库文件
1)按下图配置项目属性
在这里插入图片描述2)右键项目名,选择生成即可生成dll文件
在这里插入图片描述5、生成lib静态链接库文件
1)按下图配置项目属性
在这里插入图片描述
2)右键项目名,选择生成即可生成lib文件
在这里插入图片描述

二、使用DLL

1、新建一个C++的空项目工程,这里取工程名为useDll
2、创建一个useDll.cpp文件
3、将myDll工程项目生成的dll、lib文件和myDll.h文件拿过来,放置在useDll项目中
在这里插入图片描述
4、添加myDll.h文件到useDll的工程项目中
在这里插入图片描述
5、useDll.cpp代码如下

#include <iostream>
#include "./include/myDll.h"
#pragma comment (lib, "./dll/myDll.lib")
//动态库在运行时,会把代码链接到目标
//静态库在编译期,会把代码链接到目标
int main()
{
 int a = 6, b = 2;
  //使用导出函数
 std::cout << "a + b = " << Add(a, b) << std::endl;
 std::cout << "a - b = " << Sub(a, b) << std::endl;
 //使用导出类
 CMyDll myDll;
 std::cout << "a * b = " << myDll.Mul(a, b) << std::endl;
 std::cout << "a / b = " << myDll.Div(a, b) << std::endl;
 std::getchar();
 }

6、右键useDll的项目名,选择生成即可生成exe文件
运行结果如下:
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

⁽⁽ଘ晴空万里ଓ⁾⁾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值