2015-11-20 4 views
-1

Je suis nouveau sur OpenGL et j'ai fait des recherches sur le web et j'ai suivi quelques tutoriels mais j'ai toujours un problème. Quand je lance mon projet, je reçois une erreur:GLGenVertexArrays me donnant une adresse mémoire invalide

Unhandled exception at 0x0000000000000. Access Violation executing location 0x0000000000000 

est Ci-dessous mon code que j'exécutais qui cause cette exception et je serais ravi de l'aide sur clouer mon problème:

GLuint vertextBuffer; 
GLuint vertexArrayID; 
glGenVertexArrays(1, &vertexArrayID); 
glBindVertexArray(vertexArrayID); 
glGenBuffers(1, &vertextBuffer); 
glBindBuffer(GL_ARRAY_BUFFER, vertextBuffer); 

L'exception se produit lorsque j'essaie de lier à la fois le VBO et VAO.

Merci pour l'aide à l'avance!

+1

Suspect vous avez oublié de (https [INIT vos pointeurs d'extension]://www.opengl.org/wiki/OpenGL_Loading_Library). 'glGenVertexArrays()' est probablement NULL. Modifier dans un [mcve] afin que nous puissions vérifier. – genpfault

+1

Vous devez charger l'extension correspondante pour toutes les fonctions> OpenGL 1.1. Vous pouvez, par exemple, utiliser [glew] (http://glew.sourceforge.net/) pour cela – BDL

+0

J'utilise déjà glew pour ce @BDL –

Répondre

1

Toutes les fonctions et extensions d'OpenGL> 1.1 doivent être chargées pour être utilisées. Cela peut être fait, par exemple, à l'aide glew qui doit être initialisé comme suit:

glewExperimental = true; 
GLenum err = glewInit(); 
if (GLEW_OK != err) 
{ 
    /* Problem: glewInit failed, something is seriously wrong. */ 
    fprintf(stderr, "Error: %s\n", glewGetErrorString(err)); 
    ... 
} 

(code exemple est de http://glew.sourceforge.net/)