我有一个来自 opengl 的无效图像格式错误。我不确定是因为我使用了预编译的头文件,还是我没有正确初始化 OpenGL。据我所知,我没有使用 C++/CLI(我选择在 VC++ Express 2010 中创建一个空项目)。我正在运行 Windows7 (x64),我的错误代码是0xc000007b
.
这在OpenGL中很常见吗?我也在使用 Glew 和 Freeglut。
奇怪的是我根本没有尝试渲染图像或任何东西。我只是想让一个窗口出现。
编码
#include "stdafx.h"
#include "triangle.h"
#include "matrix3f.h"
static GLfloat move;
static GLfloat spin;
void init() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glShadeModel(GL_FLAT);
glPopMatrix();
glutSwapBuffers();
}
void draw_window() {
int height = 500;
double width = 1.9 * (double)height;
glutInitWindowSize((int)width, height);
glutInitWindowPosition(0, 0);
glutCreateWindow("opengl_03");
}
void spin_display() {
spin += 2.0;
if (spin > 360.0)
spin -= 360.0;
glutPostRedisplay();
}
void move_display() {
move += 1.0;
if (move > 10)
move -= 10;
glutPostRedisplay();
}
void keyboard(unsigned char button, int state, int x) {
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitContextVersion(3, 1);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
init();
draw_window();
//system("pause");
return 0;
}
还很有趣的是,我如何从中得到一个糟糕的图像格式。我已经检查以确保我的版本也在 IDE 中进行调试。
问题
如果可能的话,我的主要问题是确切地知道我做错了什么。
更新
我尝试移动glew32.dll
到SysWOW64
,不幸的是这没有奏效。我还尝试了将我的draw_window
函数移到 main 顶部的建议,但这也不起作用。