我有一個無效的圖像格式錯誤,從opengl出現。我不確定是因爲我使用了預編譯頭文件,還是我沒有正確初始化OpenGL。據我所知,我沒有使用C++/CLI(我選擇在VC++ Express 2010中創建一個空項目)。我正在運行Windows7(x64),並且我的錯誤代碼是0xc000007b
。OpenGL給出無效的圖像格式
這是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
函數移動到主函數頂部的建議,但這也不起作用。
你究竟得到這個錯誤? OpenGL *本身*沒有「無效格式錯誤」的概念。 – 2011-12-30 20:45:43
這可能意味着您試圖在64位應用程序中加載32位DLL,反之亦然。 – 2011-12-30 20:46:11
這很可能是這種情況,只有我的32位dll加載到我的system32中(實際上是glew32)。我會嘗試將它移到SysWOW64並看看會發生什麼。 – zeboidlund 2011-12-30 20:54:00