c++ - 编译的程序找不到 freeglut.dll

标签 c++ visual-studio-2010 opengl dll freeglut

我是这个网站的新手,对编程也比较陌生。
我一直在使用 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/

相关文章:

c++ - AVR GCC 本地数组初始化

c# - 使用 LINQ 更新数据表

c++ - CWinApp::OpenDocumentFile 创建一个新窗口

opengl - GLSL 入门

c++ - 鼠标单击OpenGL无法围绕其自身中心旋转对象

c++ - 防止 lambda 的返回类型推导

C++ 将字符串添加到 const char* 数组

c++ - c++的构造函数和析构函数汇编

mysql - 在 visual studio 中使用 MySQL 并在运行时更改连接

c - 我的 GLFW 窗口正在显示它后面的内容