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

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

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

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

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

Похожие вопросы
Aporia Севастополь
от 50 000 до 100 000 ₽
Clain Лимассол
от 5 000 €