首页 > 编程语言 >C++ 创建库并使用

C++ 创建库并使用

时间:2023-08-20 16:44:19浏览次数:32  
标签:Engine 头文件 项目 创建 C++ Game 使用

创建库并使用

!> 使用Visual Studio 2022

创建项目和解决方案

首先创建一个空项目,这里叫 Game,同时Visual Studio会帮你创建解决方案。这个项目是我们的应用程序。

创建项目来存库

!> 以静态库为例、

右键解决方案,添加新项目 Engine

此时就有了两个项目, GameEngine

打开 Engine 项目的属性,将配置类型改为静态库(注意上面的平台设置)。

写库文件

我们需要一个头文件和对应的cpp文件。我这样创建了目录(当然目录结构由你设计,这个无所谓):

Engine:
	- includes
		- Engine.h
	- Engine.cpp

打开 Engine.h ,设计一个sayHello函数来打印HelloWorld。注意,头文件中只声明函数,不定义具体功能。

#pragma once

namespace engine {

	// Print HelloWorld
	void sayHello();

}

打开 Engine.cpp,实现头文件中的功能(注意导入头文件哦)。

#include "includes/Engine.h"
#include <iostream>

namespace engine {

	// Print HelloWorld
	void sayHello() {
		std::cout << "HelloWorld!" << std::endl;
	}

}

这个库就写这么多东西,然后我们在应用程序中调用。

链接库

设置Include路径

首先需要头文件,打开项目属性,配置属性 > C/C++ > 常规 > 附加包含目录, 输入$(SolutionDir)Engine\includes

!> 如果这里没有C/C++选项,请先在项目中创建一个C++文件

这里的$(SolutionDir)表示解决方案目录,如果你放在了其他地方,注意修改路径。尽量避免使用绝对路径。

然后这个时候,在项目中引入头文件就行。

引用库文件

这里右键Game项目,选生成依赖项项目依赖项,勾选Engine

在上个文章中,我说到设置库路径,打开项目属性,配置属性 > 链接器 > 输入 > 附加依赖项,添加glfw3.lib ,这里不这样做,是因为如果我们在vs中改了库的名字,我们还需要去项目属性中重新修改依赖项。如果按上面这样设置,那么一切都是自动的,vs会帮我们做好这些工作。

尝试调用库中的函数

我们打开Game中的Application.cpp,开始写代码:

#include "Engine.h"

int main() {
	engine::sayHello();
	return 0;
}

运行后成功打印HelloWorld。

标签:Engine,头文件,项目,创建,C++,Game,使用
From: https://www.cnblogs.com/orzmiku/p/17644228.html

相关文章

  • python字符串的定义和表示及使用语法
    Python中字符串是由字符组成的不可变序列。字符串可以用单引号(')或双引号(")括起来表示。例如:s1='HelloWorld's2="PythonProgramming"Python还支持原始字符串,原始字符串以前缀r或R开头,可以包含转义字符但不会被解析。例如:s3=r'C:\Users\name\Documents'在字符串中可......
  • C++ 类
    类类是一种把数据和功能结合在一起的方法。使用class来定义一个类,像这样:classPlayer{//创建一个Player类intx=0,y=0;intspeed=1;};通过类创建一个对象(实例化),像这样:Playerplayer;成员变量可以使用点(.)来访问对象的属性。player.speed=2;但......
  • C++ 类和结构体内外的Static
    类和结构体外的Static这里的static指的是在类外的static,意味着你要声明的是static的符号,链接将只在内部。(换句话说作用域只在他所在的.cpp文件)。下面是几组例子来理解:例子1:main.cpp#include<iostream>usingnamespacestd;voidfun(){cout<<"fun()inmain.cpp"......
  • C++ 继承
    继承一个类可以继承另一个类,避免了代码复写。被继承的类被叫做基类,继承的类叫做派生类。(或者说是父类和子类)继承类型当一个类派生自基类,该基类可以被继承为public、protected或private几种类型。继承类型是通过上面讲解的访问修饰符access-specifier来指定的。我们几乎......
  • C++ 构造函数与析构函数
    构造函数和析构函数构造函数构造函数会在实例化对象的时候执行,可以在实例化时传入参数。构造函数没有返回值。不需要声明返回值。构造函数的函数名与类名保持一致。//classname:PlayerPlayer(intxa=0,intya=0){//构造函数,传入初始坐标进行初始化......
  • Java常用命令使用方法
    以下是一些常用的Java命令以及它们的使用方法:java:运行Java程序语法:java<options><class>示例:javaHelloWorldjavac:编译Java源代码语法:javac<options><sourcefiles>示例:javacHelloWorld.javajar:创建或解压JAR文件创建JAR文件:语法:jarcf<jarfile><files>示例:jarcfmyjar.......
  • mysql 根据字段值显示不同内容,case when的使用
    在表中的数据很多类型或状态保存的内容往往是1,2,3等字符或数字来代表不同的含义.有时候使用sql查询不希望输出的是数字而是对应的字符串,这时就可以使用casewhen来进行多条件显示具体如下:SELECTid,code,CASEWHENtype='1'THEN'小'WHENtype='2'THEN'中'ELSE'大'E......
  • Python selenium 的日常使用示例
    importos.pathimporttimefromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysfrombs4importBeautifulSoup#创建一个Firefox浏览器实例,需要提前下载好文件,设置好环境变量#Chrome:https://sites.google.com/a/chromium.org/chromed......
  • 使用PySpark计算AUC,KS与PSI
    当特征数量或者模型数量很多的时候,使用PySpark去计算相关指标会节省很多的时间。网上关于使用PySpark计算相关指标的资料较少,这里抛砖引玉,写了三个风控常用的指标AUC,KS和PSI相关的计算方法,供参考。AUCAUC的相关概念网上已经有很多的很好的文章,这里不在赘述,AUC使用的到的计算公式......
  • Springboot 内嵌 Sqlite 配置使用
    版本号MacOSAppleM1|Jdk17|Maven3.8.5|SpringBoot2.6.9|Sqlite3.42.0.0pom.xml<dependencies><dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId>......