創建一個最簡單的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.pswp.cn/news/252263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252263.shtml
英文地址,請注明出處:http://en.pswp.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…

ref和out區別總結

ref&#xff1a;是必需要先初始化才能用,但調用時可以對它什么也不做.out&#xff1a;可以不初始化也能用,但調用時一定要對其賦值(即使已經初始化的也要賦值,哪怕是賦一個和原來一樣的值).轉載于:https://www.cnblogs.com/gjnsmallworld/p/7216206.html

繼 承(面向對象特征之一)

1&#xff1a;成員變量。 當子父類中出現一樣的屬性時&#xff0c;子類類型的對象&#xff0c;調用該屬性&#xff0c;值是子類的屬性值。 如果想要調用父類中的屬性值&#xff0c;需要使用一個關鍵字&#xff1a;super This&#xff1a;代表是本類類型的對象引用。 Super&…

如何將cv::Mat類型轉換為imgui中的ImTextureID類型

背景&#xff1a; 我原來的工程是使用opencv的&#xff0c;所以程序中的圖像都是表示為cv::Mat類型&#xff0c;為了能夠在imgui窗口中顯示我的cv::Mat的圖像&#xff0c;我找到了下面這個函數&#xff1a; void ImGui::Image(ImTextureID user_texture_id, const ImVec2&…

react native 原生模塊橋接的簡單說明

原文出自&#xff1a;https://github.com/prscX/awes...博客鏈接&#xff1a;https://ssshooter.com/2019-02... Android 創建原生模塊包 通過繼承 ReactPackage 為你的原生模塊包創建 Java 類&#xff0c;可以這么寫&#xff1a;覆蓋 createNativeModules 和 createViewManage…

UVa 1354 天平難題 枚舉二叉樹

題意&#xff1a;給出房間寬度 r 和 s 個掛墜的重量 wi&#xff0c;設計一個盡量寬的天平&#xff0c;掛著所有掛墜。天平由一些長度為 1 的木棍組成&#xff0c;木棍的每一端要么掛一個掛墜&#xff0c;要么掛另外一個木棍。 這題卡了很久&#xff0c;看了很多大神的代碼&…

通過指針便利圖像元素

for (size_t y 0; y < image.rows; y) {//row_ptr為第y行的頭指針&#xff0c;unsigned char* row_ptr image.ptr<unsigned char>(y);for (size_t x 0; x < image.cols; x) {//data_ptr: 指向待訪問像素unsigned char* data_ptr &row_ptr[x*image.channels…

[精華][推薦]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循環可以遍歷任何序列…

六、利用frp穿透連接內網的linx系統和windows系統

服務端的配置 # frps.ini [common] bind_port 7000 說明&#xff1a;防火墻放行該端口 啟動&#xff1a;./frps -c ./frps.ini 后臺啟動&#xff1a;nohup ./frps -c ./frps.ini & 客戶端的配置 (1)windows系統 # frpc.ini [common] server_addr x.x.x.x server_port 70…

根據相機內參進行圖像去畸變

cv::Mat img; cv::Mat img_undistort; double fx,fy, cx, cy, k1, k2, p1, p2, k3;for(int v 0; v < img.rows; v){for(int u 0; u < img.cols; u){//根據內參數&#xff0c;計算歸一化坐標系下的坐標點double x (u-cx)/fx;double y (v-cy)/fy;double r2 x*x y*y;/…

initialize方法與load方法比較

load方法和initialize方法類似點 1. 都只會調用一次2. 父類在子類之前加載 復制代碼不同點在于&#xff1a; 1. 加載時間不同&#xff0c;load方法在main()函數前進行調用&#xff0c;initialize在第一次調用類的所屬方法時在調用<可能永遠不調用>。2. load方法不會被Cat…

KindEditor

1、進入官網 2、下載 官網下載&#xff1a;http://kindeditor.net/down.php 3、文件夾說明 ├── asp asp示例 ├── asp.net asp.net示例 ├── attached 空文件夾&#xff0c;放置關聯文件attached ├── …

service mysqld start,Failed to start mysqld.service: Access denied

service mysqld start 然后報&#xff1a; AUTHENTICATING FOR org.freedesktop.systemd1.manage-units Authentication is required to start mysqld.service.Authenticating as: lll,,, (lll)Password: polkit-agent-helper-1: pam_authenticate failed: Authentication fa…

使用realsense t265測試svo2.0視覺里程計

畢業三年了&#xff0c;現在是第二份工作&#xff0c;第一份工作已經結束一年半了&#xff0c;這意味著&#xff0c;我有一年半的時間沒有搞視覺SLAM相關的東西了&#xff0c;雖然在第二份工作也是做視覺相關的&#xff0c;但是只是用到一些目標識別和跟蹤的知識&#xff0c;并…

JSP動作標識

jsp中include有兩種形式: include指令&#xff1a;<% include file""%> include動作&#xff1a;<jsp:include page"" /> 他們的區別&#xff1a; <% include file""%>又稱靜態包含&#xff0c;使用時要注意以下幾點&#xf…

面試必問之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;客戶端命令行方式…

運行svo 2.0的 vio時遇到opencv沖突的問題

當我運行如下指令時&#xff0c;遇到了如下問題 指令 cd svo_ws source ./devel/setup.bash roslaunch svo_ros euroc_vio_mono.launch rosbag play MH_01_easy.bag -s 50 運行時遇到的問題 OpenCV Error: Bad argument (Unknown interpolation method) in resize, file /b…