2017-08-19 2 views
0

Ich habe vor kurzem begonnen, these OpenGL Tutorials zu folgen. Ich hatte keine Probleme bis zum Hallo Window Tutorial, wo die Funktion gladLoadGLLoader((GLADloadproc)glfwGetProcAddress) false zurückgibt. Dies führt zu den Fehlern:OpenGL, GLFW, GLAD. glViewport (0, 0, 800, 600) werfen Speicherfehler

Exception thrown at 0x00000000 in openGL_001.exe: 0xC0000005: Access violation executing location 0x00000000.

und

Unhandled exception at 0x7281C1ED in openGL_001.exe: 0xC0000005: Access violation executing location 0x00000000.

geworfen werden, wenn die Funktion glViewport(0, 0, 800, 600) genannt wird (Code siehe unten). Ich weiß, dass die GLAD Dateien das Problem sind, da der Code eine if-Anweisung enthält (siehe Code unten), überprüft, ob GLAD erfolgreich OpenGL Funktionszeiger gehandhabt hat. Ich habe versucht, es zu erhalten arbeiten, um die folgenden FROHconfigurations mit:

Sprache: C/C++, Spezifikation: OpenGl

  • API gl: v.3.0, Profil: Kern
  • API gl: v.3.3, Profil: Kern
  • API gl: V.4.4, Profil: Kern
  • API gl: v.4.6, Profil: Kern

Der Code:

#include <iostream> 
#include <glad\glad.h> 
#include <GLFW\glfw3.h> 

void framebuffer_size_callback(GLFWwindow* window, int width, int height); 

int main() { 
glfwInit(); 
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); 
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 

GLFWwindow* window = glfwCreateWindow(800, 600, "Learn OpenGL", NULL, NULL); 
if (window = NULL) { 
    std::cout << "Failed to create GLFW window" << std::endl; 
    glfwTerminate(); 
    return -1; 
} 
glfwMakeContextCurrent(window); 

if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { 
    std::cout << "Failed to initialise GLAD" << std::endl; 
} 

glViewport(0, 0, 800, 600); 
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); 

//render loop 
while (!glfwWindowShouldClose(window)) { 
    glfwSwapBuffers(window); 
    glfwPollEvents(); 
} 
glfwTerminate(); 
return 0; 

}

void framebuffer_size_callback(GLFWwindow* window, int width, int height) { 
glViewport(0, 0, width, height); 

}

Relevant (hoffentlich) Systeminformationen:

  • Windows-10
  • Visual Studio 2015 Gemeinschafts
  • OpenGL 4.4 (GTX 960)

Vielen Dank im Voraus für jede Hilfe. Wenn Sie mehr Informationen benötigen, feuern Sie weg. (Bitte beachten Sie, dass ich in den ersten 2 Stunden nach der Veröffentlichung dieser Frage nicht antworten kann.)

+3

'if (window = NULL) {' Dies wird zugewiesen, es wird nicht verglichen. –

+0

Das Kompilieren mit einer hohen Warnstufe ('/ W4') gibt Ihnen eine Warnung, wenn in einer' if'-Anweisung eine Zuweisung vorhanden ist. – 1201ProgramAlarm

+0

@ ColonelThirtyTwo danke. Es war einer dieser Tage. – piccadi11y

Antwort

0

Gelöst. Tippfehler in if Aussage. Fehlt einer der beiden =.

Verwandte Themen