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

OpenGL GLFW GLAD shared between projects Visual C++

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

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

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

按照 Robinson 的建议,我在初始化后的 dll 中添加了对 gladLoadGLLoader 的调用