Visual Studio封装静态链接库至新静态库,供程序调用

news/2024/11/8 8:58:29/

熟悉Windows开发的人都肯定了解静态链接库和动态链接库。

最近遇到一个问题:

A静态库是使用VS编译,因为C++版本的问题,并不能直接在Qt中被调用,因为会报头文件某处错误。

因为A库很大,同时又不想修改太多A库源文件,所以想到了继续封装A库为B静态链接库,然后可以在Qt中调用B库。

所以,此文便是如何封装静态库,和如何使用静态库调用静态库。

1、先创建静态库文件 MathLibAdd

其中头文件和源文件代码分别如下:

#pragma once
class MathLibAdd
{
public:static void Add(int a, int b);
};
#include "MathLibAdd.h"
#include <iostream>void MathLibAdd::Add(int a, int b)
{std::cout << "this is MathLibAdd-> Add" << std::endl;std::cout << a + b << std::endl;
}

将静态库编译:

 因为采用的是Debug模式编译,所以在Debug目录中文件如下:

 2、编写静态库 MathLib

同样的方法创建静态库MathLib

2-1 添加MathLibAdd静态库及配制:

将上一步编译生成的MathLibAdd.lib、MathLibAdd.h文件复制至特定目录

然后在当前创建的静态库文件下右键点击项目名->属性, 配制静态库依赖。

 在对应的编译模式下,配制VC++目录中的 包含目录、库目录信息,分别添加MathLibAdd库文件的头文件、lib文件目录地址信息。

 然后编写MathLib库头文件及源代码:

MathLib.h

#pragma once
class MathLib
{
public:static void Add(int a, int b);
};

Mathlib.cpp

#include "MathLib.h"
#include <iostream>
#include "MathLibAdd.h"void MathLib::Add(int a, int b){std::cout << "this is MathLib -> Add" << std::endl;MathLibAdd::Add(a, b);
}

编译MathLib项目,生成文件如下:

3、写测试程序,测试MathLib静态库

3-1、新建MathLibTest项目

3-2、将上述两部编译生成的MathLibAdd.lib、MathLib.lib两个静态库文件,及MathLib.h头文件复制至特定目录

3-3、配制MathLibTest项目库文件信息

3-3-1、项目属性打开

3-3-1-1、VC++目录配制

 3-3-1-2、链接器配制

打开链接器配制->输入

在右侧添加依赖项中将MathLib.lib、MathLibAdd.lib的库名添加进去。

3-4、编写测试源代码

// MathLibTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
#include "MathLib.h"int main()
{std::cout << "Hello World!\n";MathLib::Add(10, 20);
}// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件

4、编译运行,测试成功


http://www.ppmy.cn/news/311920.html

相关文章

最新的发布

<div><p>再来一次</p><p>分享</p></div> 最123

走进 WWDC 2023 苹果开发者大会

6 月 6 日凌晨开始,苹果在加州总部举行了 WWDC 2023 开发者大会的主题演讲,向全球观众展示了 iOS 17、iPadOS 17、tvOS 17、watchOS 10 和 macOS 14 这五大新系统,以及备受期待的混合现实头显 Apple Vision Pro 和 Mac Pro 等硬件。 以下是对发布会的主要内容和亮点的总结和…

收藏夹 -- 常来看看。

Bookmarks Another Joel on Software - 未名空间(mitbbs.com) - 海外华人第一门户 麻省理工学院开放课件 | OCW Home Joel on Software Joel 说软件 BUSINESS BLOG Apache.org Welcome to Lucene! Welcome to Nutch! apache 中国镜像 Welcome! - The Apache Software Foundatio…

网吧母盘网上精华+个人总结=超详细

网吧母盘网上精华&#xff0b;个人总结&#xff1d;超详细(来源&#xff1a;东北军团&#xff1a;lovezyd ) 一。网吧母盘制作其本流程&#xff1a;另部分铁分散在&#xff08;2楼批处理一键恢复代码 5楼全国DNS 7楼小灌-网管比还惨 11楼DLL文件修改 14楼打造个人电脑的铜墙铁壁…

ChinaMode评选:2010最受瞩目的45个初创公司/产品

2010年ChinaMode评选活动经过一个多月的时间&#xff0c;从线上提名&#xff0c;专家评审到最后的公开投票&#xff0c;获得了11026个有效提名&#xff0c;44245个有效投票&#xff0c;最终评选出了ChinaMode2010各个奖项最终获奖的名单&#xff1b;全部入围公司名单可以查看这…

如何运营一个论坛

论坛运营的阶段性工作实操 后浪 运营 论坛开通了&#xff0c;怎样打造让她变得火爆起来&#xff0c;越来越受到更多人的关注呢&#xff1f;这就涉及到一个关键的问题那论坛运营。凡事不能一蹴而就&#xff0c;得一步一步的来&#xff0c;论坛也是如此&#xff0c;必须有阶段性有…

各有各的神通 10款图片处理小工具应用

各有各的神通 10款图片处理小工具应用 作者&#xff1a;王伟光 数码相机拍摄的照片通常都需要处理后才“见得人”。照片处理最强大的工具莫过于Photoshop。但对于大众来说&#xff0c;PS实在太难&#xff0c;不易掌握。有时简单的处理&#xff0c;何必用PS这样的“牛刀”&#…

周末阅读:北漂程序员边城的幸福生活

边城 赵边城是我的发小&#xff0c;我们上了同样的小学和中学&#xff0c;又同时来到北京。 赵边城毕业后先后加入了BAT这种重量级别的互联网公司。 赵边城从十五年前&#xff0c;就开始写软件了。为了一个女人。 春节同学聚会相遇&#xff0c;相约同行回京&#xff0c;一路…