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,运行成功
在这里插入图片描述
至此,动态链接库封装结束

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值