38. c++创建和使用库

news/2025/2/9 8:44:45 标签: c++, 开发语言

将一个项目创建为库的形式,在大规模的项目中有利于模块化管理和后续的重复使用。下面描述怎样将c++项目创建为库。

38.1 创建库项目

创建一个空c++项目Game,然后在solution中再添加一个新project

创建Engine后,右键properties改变configuration type为静态.lib类型

38.2 使用创建的库

创建库项目Engine后,写入一些code以便功能测试,编译完成后得到lib文件如下:

‘37c++静态库的使用’中描述了使用静态库的方法,先在项目中定义头文件的宏,然后加入lib文件,这里我们需要先加入头文件的宏定义 

 由于Engine与Game在同一个Solution下,因此可以不用额外添加lib文件,直接在Game中引用Engine库即可。右键Game->add->reference,添加Engine

这样与在vs中手动添加 Engine.lib的不同之处在于:

手动添加后,库项目名称更新后,还需要同步更新配置的库名称;如果是动态链接的话,还需要更新dll,替换旧的库;

引用库之后,不用关注库名称的变化,且编译主项目Game时,库也会随之编译更新。

如下编译Game时会同步编译最新的库程序。

执行成功,打印hello world

38.3 补充:生成dll

如果想要生成dll文件,首先设置Engine项目如下:

然后分别在头文件和源文件的函数前加上__declspec(dllexport)

头文件

#pragma once
#include <iostream>
__declspec(dllexport) void printEngine();

源文件

#include <iostream>
#include "Engine.h"
__declspec(dllexport) void printEngine()
{
	std::cout << "hello world" << std::endl;

}

 编译后生成dll和lib文件

 


http://www.niftyadmin.cn/n/5845859.html

相关文章

【算法】动态规划专题⑧ —— 分组背包问题 python

目录 前置知识进入正题实战演练总结 前置知识 【算法】动态规划专题⑤ —— 0-1背包问题 滚动数组优化 python 进入正题 分组背包问题的详细解析 1. 问题定义 在 分组背包问题 中&#xff0c;物品被划分为若干组&#xff0c;每组内的物品 互斥&#xff08;只能选择其中一个或…

【PyQt】集中式样式表(QSS文件)管理界面样式

集中式样式表&#xff08;QSS文件&#xff09;管理界面样式 集中式样式表&#xff08;通常使用QSS&#xff0c;Qt StyleSheet&#xff09;是一种非常有效的方式来管理和定制你的PyQt应用程序的界面样式。类似于Web开发中的CSS&#xff0c;QSS允许你以声明式的方式定义组件的外…

android设置添加设备QR码信息

摘要&#xff1a;客户衍生需求&#xff0c;通过扫QR码快速获取设备基础信息&#xff0c;并且基于POS SDK进行打印。 1. 定位至device info的xml添加相关perference Index: vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/my_device_info.xml--- vendor/medi…

Linux strace命令介绍

&#x1f4ca; strace 命令详解 &#x1f680; 1. 什么是 strace&#xff1f; strace&#xff08;System Trace&#xff09;是 Linux 下的一个强大调试工具&#xff0c;用于跟踪和诊断程序与内核之间的交互。它可以捕获程序执行过程中发出的 系统调用&#xff08;System Calls…

TensorFlow 示例平方米转亩(二)

一 训练结果 二 完整代码 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.callbacks import EarlyStopping# 中文字体设置 plt.rcParams[font.sans-serif] [Microsoft YaHei] plt.rcParams[axes.unicode_minus] Fals…

wordpressAI工具,已接入Deepseek 支持自动生成文章、生成图片、生成长尾关键词、前端AI窗口互动、批量采集等

基于关键词或现有内容生成SEO优化的文章&#xff0c;支持多种AI服务&#xff08;如OpenAI、百度文心一言、智谱AI等&#xff09;&#xff0c;并提供定时任务、内容采集、关键词生成等功能。 核心功能 文章生成 关键词生成&#xff1a;根据输入的关键词生成高质量文章。 内容…

mysql8安装时提示-缺少Microsoft Visual C++ 2019 x64 redistributable

MySQL8.0安装包mysql-8.0.1-winx64进行安装&#xff0c;提示&#xff1a;This application requires Visual Studio 2019 x64Redistributable, Please install the Redistributable then runthis installer again。出现这个错误是因为我们电脑缺少Microsoft Visual C 这个程序&…

BiGRU双向门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址&#xff1a;BiGRU双向门控循环单元多变量多步预测&#xff0c;光伏功率预测&#xff08;Matlab完整源码和数据) BiGRU双向门控循环单元多变量多步预测&#xff0c;光伏功率预测 一、引言 1.1、研究背景和意义 随着全球对可再生能源需求的不断增长&#xff0c;光伏…