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 的调用
在 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 的调用