我确信一切都是正确链接的。我最初使用的是来自非官方 GLSDK 的 glload 和 glfw,但后来我决定取消 glload,这意味着我必须使用 glew 才能获得现代标头。
#include <GL/glew.h>
#include <GL/glfw.h>
根据说明,我在 glfw 之前包含了 glew 。
在运行期间,OpenGL 窗口打开
//(relevant code)
if(!glewInit()) {return -1; }
if(!glfwInit()) {return -1; }
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// also tried glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE);
if(!glfwOpenWindow(1024, 768, 8, 8, 8, 8, 24, 8, GLFW_WINDOW)){
glfwTerminate();
return -1;
}
glfwSetWindowTitle("OpenGL 3.2");
//init method
glGenVertexArrays(1, &vao); //<< Access violation here.
有什么想法我的问题在这里吗?
我看过了。“使用带有 glew 的 VBO 的访问冲突”但这没有帮助。