У меня ошибка неправильного формата изображения, которая возникает из 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.
Вопрос
Мой основной вопрос, чтобы точно знать, что я делаю неправильно, если это возможно.
Update
Я попытался двигаться glew32.dll
к SysWOW64
, и, к сожалению, это не сработало. Я также попробовал предложение, которое включало перемещение моей функции draw_window
в начало main, и это тоже не сработало.
Что именно вы получаете от этой ошибки? OpenGL * сам * не имеет понятия «неверная ошибка формата». –
Возможно, это означает, что вы пытаетесь загрузить 32-разрядную DLL в 64-битном приложении или наоборот. –
Это может быть очень хорошо, только у меня есть 32-разрядная dll, загруженная в мою систему32 (фактически glew32). Я попробую переместить его на SysWOW64 и посмотреть, что произойдет. – zeboidlund