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). Но он должен исчезнуть при конце программы
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Alexander1705
Вы не инициализируете контекст OpenGL, поэтому ваша программа падает при первом же использовании функции OpenGL. Для инициализации вам нужно использовать GLEW.

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

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

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

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

Войти через центр авторизации
Похожие вопросы