EnDeRJaY
@EnDeRJaY
cout >> "Hello World!" >> endl;

Почему вызывается исключение???

Не будет отступлений, сразу к делу
Вот код:
#define GLEW_STATIC
#include <D:\Games\Include\GLEW\glew.h>

#include <D:\Games\Include\GLFW\glfw3.h>

#include<D:\Games\Include\GLUT\glut.h>

void draw()
{
	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

	glDrawArrays(GL_POINTS, 0, 1);

	glClear(GL_COLOR_BUFFER_BIT);
	glutSwapBuffers();
}
int main(int argc, char *argv[])
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);

	glutInitWindowSize(1024, 768);
	glutInitWindowPosition(100, 100);
	glutCreateWindow("Tutorial 01");

	GLfloat vertices[] = {

		0.0f,0.0f,0.0f


	};

	GLuint VBO;
	glGenBuffers(1, &VBO);

	glBindBuffer(GL_ARRAY_BUFFER, VBO);

	glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);

	glEnableVertexAttribArray(0);

	glBindBuffer(GL_ARRAY_BUFFER, VBO);

	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);



	glutDisplayFunc(draw);

	glutMainLoop();

	glfwTerminate();
	return 0;
}

Исключение вылетает на генерации буфера VBO(glGenBuffers(1, &VBO);)
Исключение: нарушение прав доступа при исполнении по адресу 0x00000000

Насколько я помню(я не помню вообще) это исключение вызывается,когда указатель при завершении программы не обнуляется(т.е. не указывает на 0). Но он должен исчезнуть при конце программы
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Alexander1705
Вы не инициализируете контекст OpenGL, поэтому ваша программа падает при первом же использовании функции OpenGL. Для инициализации вам нужно использовать GLEW.

Так же не понятно, зачем вы подключаете GLUT и GLFW одновременно...

Посмотрите этот туториал по OpenGL. В конце статьи есть код, который делает как раз то, что вам нужно.

P. S. Исключение, как собственно и написано, вызывается, когда программа разыменовывает (использует) указатель, который указывает на память за пределами адресного пространства приложения. Например, неинициализированный указатель.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы