我自己学习OpenGl,我跟随:http://www.lighthouse3d.com/tutorials/glut-tutorial/initialization/。
我使用Visual Studios 2013和freeglut版本2.8.1,预先打包:http://www.transmissionzero.co.uk/software/freeglut-devel/
我的代码现在只是示例中的代码的副本:
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glutSwapBuffers();
}
int main(int argc, char **argv) {
// init GLUT and create Window
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("Lighthouse3D - GLUT Tutorial");
// register callbacks
glutDisplayFunc(renderScene);
// enter GLUT event processing cycle
glutMainLoop();
return 1;
}
我的错误:
OpenGL.exe中0x1056131C(ig4icd32.dll)的未处理异常:0xC000041D:在用户回调期间遇到未处理的异常。
调用堆栈:
OpenGL.exe!glutCreateWindow_ATEXIT_HACK(const char * title) Line 616 C++
OpenGL.exe!main(int argc, char * * argv) Line 30 C++
freeglut_std.h(这是我休息时发生的行):
#define glutInit glutInit_ATEXIT_HACK
static int FGAPIENTRY FGUNUSED glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
我已经能够确定造成错误的原因。更多信息,我使用Visual Studio的项目属性工具来进行链接。附加包含的include文件夹,附加包含的lib文件夹。我将freeglut.lib添加到其他依赖项中。我将freeglut.dll放在Visual Studio创建的调试文件夹中的.exe文件夹中。
我已经尝试过#define GLUT_DISABLE_ATEXIT_HACK,但是没有用。我不确定从哪里开始。
最后一些其他信息,因为我感觉它可能也没有帮助。 我正在运行Windows 8.1,我有英特尔集成芯片组家族4,它没有8.1驱动程序。