我是这个网站的新手,对编程也比较陌生。
我一直在使用 Visual Studio 2010 进行一些 C++ 编程,我想进入 OpenGL,所以我购买了 OpenGL Superbible 以开始使用。我被困在第二章的“简单”项目上。
经过数小时的研究,我已经能够下载所有必要的文件来使用 freeGLUT 和 GLtools。我已经确保一切都在程序运行的正确位置。
现在,似乎一切都已经解决了……除了一个奇怪的问题。
有人指示我需要将 freeglut.dll 放入 Windows\System32,所以我这样做了。该项目现在将构建,但是当我去运行它时,它告诉我
"The program can't start because freeglut.dll is missing from your computer. Try reinstalling the program to fix this problem."
现在,我确定 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;
}
最佳答案
尝试将 DLL 与您的 exe 文件放在同一文件夹中。将它放在 Windows\System32 中的建议早于许多较新的 Windows 安全限制。
关于c++ - 编译的程序找不到 freeglut.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16824526/