c++封装静态链接库和动态链接库

1.静态链接库

1.1新建空项目

空项目中添加源文件Project1.cpp,头文件Project1.h,具体内容如下:
Project1.cpp

#pragma once
#include "Project1.h"
#include <iostream>
using namespace std;
void my_test_print()
{
	cout << "nb" << endl;
}

Project1.h

#pragma once
void my_test_print();

在这里插入图片描述

1.2设置项目生成静态链接库

在这里插入图片描述

1.3生成静态库

平台设为X64,点击生成,成功生成静态库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以在Project1\x64\Debug目录下找到生成的静态库文件Project1.lib
在这里插入图片描述

1.4新建test空项目

在test项目目录中新建include文件夹和lib文件夹,分别放Project1.h和Project1.lib,如下图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.5 test添加test.cpp

在这里插入图片描述

添加的内容如下:

#pragma once
#include <iostream>
#include "./include/Project1.h"//也可自己添加包含目录
int main()
{
	my_test_print();
	return 0;
}

1.6设置库目录,链接器

我使用的是相对路径,也可选用绝对路径

库目录设置如下:
在这里插入图片描述
链接器设置如下:
在这里插入图片描述
设置完点击确定

1.7运行test项目

平台依然设为X64,点击运行,出现nb,运行成功
在这里插入图片描述
至此,静态链接库封装结束

2动态链接库

为了方便,我直接在静态链接库的基础上进行更改

2.1删除静态链接库

删除测试项目lib目录下的Project1.lib
在这里插入图片描述

2.2修改Project1.h文件

这一步挺重要的,修改为如下:

#pragma once
void __declspec(dllexport) my_test_print();

关键就是要在函数名添加__declspec(dllexport),如果不加就不能生成Project1.lib符号文件

2.3设置项目生成动态链接库

在这里插入图片描述

2.4生成

为避免之前生成的静态库文件的影响,删除后再点击生成
在这里插入图片描述
点击生成
在这里插入图片描述
生成后可以在Project1\x64\Debug目录下找到生成的符号文件Project1.lib和动态库文件Project1.dll
在这里插入图片描述
可以看到符号文件很小只有2k,主要函数的实现封装在了dll文件中

2.5复制

将符号文件Project1.lib复制到测试项目下的lib文件夹
如下图:
在这里插入图片描述
将库文件Project1.dll复制到测试项目下可执行文件的文件夹test\x64\Debug中
如下图:在这里插入图片描述

2.6运行test项目

点击运行,出现nb,运行成功
在这里插入图片描述
至此,动态链接库封装结束

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值