使用Dear ImGui踩坑实录

环境和平台:VS2019, opengl3

  • 最大的一个坑:用glad会导致glBindVertexArray报错“0xC0000005: 执行位置 0x0000000000000000 时发生访问冲突”!DearImGui的源文件是允许使用glad来加载GL loader的,但是我用glad就报错……为了验证,我将作者写的example用glad替换gl3w后发现也报错了Σ(⊙▽⊙"a,改回gl3w就正常运行了,在我自己的项目中也是。

另外,在越是复杂的项目中越不建议使用glad(Debug的血泪教训o(╥﹏╥)o)。因为glad.h必须要在glfw.h前包含,如果遇到包含关系比较复杂的项目就会导致这样的情况:a.cpp包含了glad.h并使用了函数func(),b.cpp包含了glfw3.h并定义了func()。现在在main.cpp中要同时使用glad.h, glfw3.h和func(),若#include "a.cpp"在#include "b.cpp"前,那么会报错“无法解析的外部符号func”,因为定义被放在了使用之后;若#include "b.cpp"在#include "a.cpp"前,那么会报错“glad已经提供了OpenGL函数”(大概是这个意思),因为glad.h不能放在glfw3.h的后面。(╯‵□′)╯︵┻━┻ 但是gl3w和glew就没有这个问题了。

  • 没有把需要的.h和.cpp文件包含到解决方案资源管理器的源文件中,导致虽然#include "XXX.h"了但是却报错“无法解析的外部符号”,即找不到函数的定义。(但是我现在还没搞清楚这个文件夹到底是干什么的,先放进来解决了bug再说~)

猜你喜欢

转载自www.cnblogs.com/saltedreed/p/12460484.html