OpenGL GLFW GLAD 在项目之间共享 Visual C++.

OpenGL GLFW GLAD shared between projects Visual C++

本文关键字:共享 Visual C++ 之间 项目 GLFW GLAD OpenGL      更新时间:2023-10-16

在Visual C++ 2017下,我有一个项目DLL,其中包含核心GLFW 3.2.1例程(如glfwInit()glfwWindowShouldClose()glfwTerminate()...(。这些方法封装在名为 RenderLoop 的静态类中。它也使用GLED和GLM。 另一方面,我有一个 EXE 项目应用程序,它在同一解决方案中调用 RenderLoop 方法。

一切正常,我启动exe,创建窗口,循环正在运行等...... 然而,我尝试在我的 EXE 中调用一些 gl 函数(如glGenVertexArrays(,在初始化后。我无法摆脱访问冲突例外。

如果我把这个 gl 函数放在 DLL 中,一切正常。如果我把它放在 EXE 中,它会崩溃。有没有在DLL和EXE之间共享OpenGL的"技巧"?

正如Robinson所建议的那样,我在初始化后在dll中添加了一个对gladLoadGLLoader的调用