Я новичок на этом сайте и относительно новичок в программировании. Я некоторое время занимался программированием на C++, используя Visual Studio 2010, и я хотел заняться OpenGL, поэтому для начала я купил OpenGL Superbible. Я застрял на «простом» проекте второй главы. После нескольких часов исследований я смог загрузить все необходимые файлы для использования freeGLUT и GLtools. Я убедился, что все находится в нужном месте для работы программы. Теперь кажется, что все улажено... за исключением одной странной проблемы.
Мне сказали, что нужно поместить freeglut.dll в папку Windows\System32, что я и сделал. Сейчас проект будет построен, но когда я запущу его, он скажет мне
«Программа не может запуститься, так как на вашем компьютере отсутствует freeglut.dll. Попробуйте переустановить программу, чтобы решить эту проблему».
Теперь я уверен, что freeglut.dll находится в Windows\System32, как и должно быть, так в чем проблема? как мне это решить?
Вот исходный код из книги:
#include "../../shared/gltools.h" //OpenGL toolkit
//////////////////////////////////////////////
//called to draw scene
void RenderScene(void)
{
// clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT);
//Flush drawing commands
glFlush();
}
////////////////////////////////////////////////////////
//set up the rendering state
void SetupRC(void)
{
glClearColor(0.0f , 0.0f, 1.0f, 1.0f );
}
///////////////////////////////////////////////////////////
//main program entry point
void main(void)
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutCreateWindow("Simple");
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();
return 0;
}
Это код, который на самом деле скомпилировался, но не запустился (это немного беспорядок из-за всех противоречивых данных, которые я получил из разных ресурсов):
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <GLTools.h>
#include <gl/GLUT.h>
//called to draw scene
void RenderScene(void)
{
// clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
//set up the rendering state
void SetupRC(void)
{
glClearColor(0.0f , 0.0f, 1.0f, 1.0f );
}
//void main(void)
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutCreateWindow("Simple");
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();
return 0;
}