我正在尝试在我的 OpenGL 项目中使用 VBO。我使用 glew 库进行扩展,使用 glfw 进行 Windows 处理。当我尝试创建 VBO 应用程序崩溃时,我得到
symulator3C.exe 中 0x00000000 处未处理的异常:0xC0000005:访问冲突
在函数 glGenBuffersARB 中。这是我的代码:
GLuint vboId1=0; //this is global variable
void createVBO(){
normalsVBO = (float *) malloc(sizeof(float)*3*(SIZE_X-1)*SIZE_Y*2);
verticesVBO = (float *) malloc(sizeof(float)*3*(SIZE_X-1)*SIZE_Y*2);
if(normalsVBO==NULL) exit(-1);
if(verticesVBO==NULL) exit(-1);
glGenBuffersARB(1, &vboId1); //HERE IT CRASHES!
// bind VBO in order to use
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboId1);
...
glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(float)*3*(SIZE_X-1)*SIZE_Y*2, verticesVBO, GL_DYNAMIC_DRAW);
glEnableClientState(GL_VERTEX_ARRAY); // activate vertex coords array
glVertexPointer(3, GL_FLOAT, 0, 0);
}
我不知道怎么了。当然,在调用这个函数之前,我调用 glewInit() 并且结果是成功的。编辑:我正在使用 Visual Studio 2010