在Visual C ++ 2017下,我有一个项目DLL,其中包含核心GLFW 3.2.1例程(如glfwInit()
,glfwWindowShouldClose()
,glfwTerminate()
...)。这些方法封装在名为RenderLoop的静态类中。它也使用GLAD和GLM。
另一方面,我有一个EXE项目应用程序,它在同一个解决方案中调用RenderLoop方法。
一切正常,我启动exe,窗口创建,循环运行等...
然而,在初始化之后,我尝试在我的EXE中调用一些gl函数(如glGenVertexArrays
)。我无法摆脱访问冲突异常。
如果我把这个gl函数放在DLL中,一切正常。如果我把它放在EXE中,它会崩溃。在DLL和EXE之间共享OpenGL是否有“技巧”?
答案 0 :(得分:0)
正如Robinson所说,我在初始化后在dll中添加了对gladLoadGLLoader的调用