创建一个最简单的imgui测试用例

在上一篇文章中,我们初步认识了一下imgui,并且成功运行了他提供的demo。这只是开始学习imgui的第一步,在实际使用时,我们需要将imgui应用到自己的工程中去,所以你需要具备将imgui加到你工程中去的能力,简单起见,我们可以利用imgui提供的examples中的一个demo来创建一个新的单独的VS工程先。

一、选定你要使用的组合

我选择的是glfw+opengl3这样的组合形式,也就是examples中的example_glfw_opengl3中的demo。在这个目录下有一个main.cpp是我们创建新工程需要的文件之一。

 二、确定需要哪些文件

1. 首先查看使用VS打开的examples中的example_glfw_opengl3中需要哪些文件。

经过删减和整理,也就是保存下来下面这些文件,在正常情况下就可以将example_glfw_opengl3的demo运行起来了。libs是直接从原来的examples中复制出来没有删减。

三、创建新的工程

上面我们已经确定了我们运行example_glfw_opengl3这个demo所需要的的最少的文件,之所以暂时先把那些没有用到的文件删除掉,是为了避免他们混淆视听,这样我们就可以有更加清晰的思路来看待这个问题,就像我们所说的商业模式中的产品模式,我们为了解决客户的问题,要提供自己的产品或者服务,但是在最开始呢,我们没有必要也不能花重资来打磨一个产品,我们只需要给出我们的“最小可行产品”就可以,那什么是最小可行产品呢,就是说,能够解决客户问题的,成本最低的,最简单的产品。当客户对我们提供的“最小可行性产品”满意了,并且愿意花时间或者花钱了,我们才开始投入人力物力来进一步打磨更量产该产品,满足客户的更多需求。

我们在VS上创建一个空工程,新创建一个thirdpaty文件夹,并且将刚才经过删减后的imgui-master文件夹放进去。并且将刚才从examples中复制出来的main.cpp剪切到工程的根目录下。

 到这里我们已经把需要的文件都准备好了,接下来我们还需要将相应的文件添加到工程中去。方法如下:

全部添加成功后就变成了下面这个样子,.h文件和.cpp文件可以区分得开。

把必须的文件都添加到工程后我们需要在属性设置中,设置路径和所需要的库 ,否则是编译不过的,文件和库都找不到。

1. 设置"Additional Include Directories",这里设置了程序中所有使用#include的方式加入工程的的文件的路径

 2. 设置“Additional Library Directory”,设置了程序需要的glfw路的路径

 3. 设置“Additional Dependences”,就是要指定工程需要的库的名称,这里的glfw3.lib文件是在咱们工程中的,而opengl3应该是系统的库。

 经过上面的设置,通常情况下程序就可以正常运行了,效果如下:

我自己在配置这个程序中遇到的一些问题有哪些呢

1. 我明明配置好了include所有的路径,我确定是正确的,为啥编译程序时还是提醒我找不到文件呢?原因是我犯了很白痴弱智的错误。所以大家一定要注意模式的统一,要不然你就会开始怀疑人生。

2. 如果你配置后出现了,库的问题,如提示说,未解析的外部符号的错误提示,那你就再创建一个新的工程再配置一遍,如果单个程序可行了,但是在你原有的工程中配置imgui时遇到了上述的问题,你要留意一下你原工程中是否有你自己添加的.props文件,你排查一下是不是因为这个 文件的问题,我也不知为什么,我删除这文件就可以解决问题,后来重新创建了一个新的.props文件,问题就解决了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea中maven的setting.xml的配置

2019独角兽企业重金招聘Python工程师标准>>> <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

[精华][推荐]SSO CAS单点登录框架学习 搭建详细步骤及源码

1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) &#xff0c;并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多个) 3) SSO 认证中心(一个) 2.SSO 实现包含以下三个原则 1) 所有的登录都在 SSO 认证中心进行。 2) SS…

电脑下载的M4A格式文件怎么转换为MP3格式

M4A文件格式并不是一个家喻户晓的名字&#xff0c;与&#xff2d;&#xff30;&#xff13;格式相比&#xff0c;知名度远远落后。但是&#xff0c;这并不意味着它无关紧要&#xff0c;有时候我们下载的音乐可能就是M4A格式的&#xff0c;如果换一个设备播放可能就会出现格式不…

python-for循环

一、功能 for 循环提供了python中最强大的循环结构&#xff08;for循环是一种迭代循环机制&#xff0c;而while循环是条件循环&#xff0c;迭代即重复相同的逻辑操作&#xff0c;每次操作都是基于上一次的结果&#xff0c;而进行的&#xff09; Python for循环可以遍历任何序列…

KindEditor

1、进入官网 2、下载 官网下载&#xff1a;http://kindeditor.net/down.php 3、文件夹说明 ├── asp asp示例 ├── asp.net asp.net示例 ├── attached 空文件夹&#xff0c;放置关联文件attached ├── …

使用realsense t265测试svo2.0视觉里程计

毕业三年了&#xff0c;现在是第二份工作&#xff0c;第一份工作已经结束一年半了&#xff0c;这意味着&#xff0c;我有一年半的时间没有搞视觉SLAM相关的东西了&#xff0c;虽然在第二份工作也是做视觉相关的&#xff0c;但是只是用到一些目标识别和跟踪的知识&#xff0c;并…

面试必问之JVM原理

1&#xff1a;什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令…

InfluxDB学习之InfluxDB的基本操作

InfluxDB提供类SQL语法&#xff0c;如果熟悉SQL的话会非常容易上手。本文就为大家介绍一下InfluxDB的基本操作。 InfluxDB提供类SQL语法&#xff0c;如果熟悉SQL的话会非常容易上手。 一、InfluxDB操作方式 InfluxDB提供三种操作方式&#xff1a; 1&#xff09;客户端命令行方式…

DOS Network一月项目月报

欢迎大家阅读DOS Network第一期项目月报&#xff01;DOS为了跟大家更好的沟通和交流&#xff0c;将在每个月为大家跟进DOS Network项目进展月报。月报主要分为项目研发和社区及营销两个部分。 如果你是刚认识DOS Network预言机网络的新朋友&#xff0c;欢迎查阅往期文章&#x…

lsof详解

from:https://www.cnblogs.com/the-study-of-linux/p/5501593.html lsof (list open files)是一个列出当前系统打开文件的工具。在linux系统环境下&#xff0c;任何事物都可以以文件形式存在&#xff0c;通过文件不仅可以访问常规的数据&#xff0c;还可以访问网络连接和硬件。…

ros rviz显示rosbag中的图像和imu数据

一、rosbag相关的指令 1. rostopic list //列举出系统中正在发布的ros 话题 2. rosbag record -a //录制系统中所有正在发布的ros 话题 3. rosbag record topic1 topic2 .... -o bagname.bag 4. rosbag play bagname.bag //播放bag文件 5. rosbag info bagname.bag //查看…

day1||python

测试题&#xff1a; 0. Python 是什么类型的语言&#xff1f; Python是一种面向对象、解释型、动态类型计算机程序设计语言解释型&#xff1a;程序无需编译成二进制代码&#xff0c;而是在执行时对语句一条一条编译动态类型&#xff1a;在程序执行过程中&#xff0c;可以改变变…

2.7万字还原行业面貌,《2019 AI金融风控行业研究报告》正式上线!...

在金融科技领域&#xff0c;风险控制的重要性&#xff0c;从其关联的金融业务和结合的技术维度可见一斑&#xff1a;风控涉及信用借贷、保险、支付、供应链金融等场景&#xff0c;并运用了包括生物特征识别、机器学习、自然语言处理、大数据、云计算等多项技术。 区别于美国有…

cs堡垒机使用说明

一、堡垒机介绍 为了保证机房的网络安全&#xff0c;IDC内所有服务器不被允许从办公网直接ssh登录&#xff0c;必须通过跳板机进行间接登录。用户通过跳板机执行的所有命令&#xff08;包括通过跳板机登录的其他机器后的命令&#xff09;都会被保存并审计。 cs是我们登录IDC服…

koa中间件机制详解

转自&#xff1a;https://cnodejs.org/topic/58fd8ec7523b9d0956dad945 koa是由express原班人马打造的一个更小、更富有表现力、更健壮的web框架。 在我眼中&#xff0c;koa的确是比express轻量的多&#xff0c;koa给我的感觉更像是一个中间件框架&#xff0c;koa只是一个基础的…

如何构建一个真实的推荐系统?

AI 前线导读&#xff1a;随着互联网行业的井喷式发展&#xff0c;数据规模呈现爆炸式增长。大数据中蕴含了巨大的价值&#xff0c;但同时也来了很 “信息过载” 的问题。推荐系统作为一个广泛应用的信息过滤系统&#xff0c;在很多领域取得了巨大的成功。在电子商务上&#xff…

volatile的适用场景

介绍 把代码块声明为 synchronized&#xff0c;有两个重要后果&#xff0c;通常是指该代码具有 原子性&#xff08;atomicity&#xff09;和 可见性&#xff08;visibility&#xff09;。 原子性意味着个时刻&#xff0c;只有一个线程能够执行一段代码&#xff0c;这段代码通过…

C#如何测试代码运行时间

第一种方式&#xff1a;System.Diagnostics.Stopwatch stopwatch new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 // 需要测试的代码 .... stopwatch.Stop(); // 停止监视 TimeSpan timespan stopwatch.Elapsed; // 获取当前实例测量得出的总时间 double …

第二十二章:动画(六)

复合动画您可以混合等待和未等待的调用来创建复合动画。 例如&#xff0c;假设您希望按钮在大小扩展的同时旋转360度然后收缩。ViewExtensions类定义一个方法名称ScaleTo&#xff0c;它为Scale属性设置动画&#xff0c;就像RotateTo为Rotate属性设置动画一样。 Button大小的扩展…

ubantu之Git使用

本文讲述在Ubuntu 14.04 x64环境下&#xff0c;如何安装Git&#xff0c;配置连接GitHub&#xff0c;并且上传本地代码到github。 一. 注册Git账户以及创建仓库 要想使用github第一步当然是注册github账号了。之后就可以创建仓库了&#xff08;免费用户只能建公共仓库&#xff0…