0

我正在使用 Qt,我正在尝试使用 GLEW 从 OpenGL 1.0 切换到更新的 OpenGL。我有一个 GUI,它使用 QGLWidget 的子类来处理 OpenGL 的东西。在initializeGL我做声明的开头,GLenum err = glewInit();这会导致以下情况:

program.exe exited with code -1073741515

更多细节:库:

LIBS += -L"C:/Program Files/Microsoft SDKs/Kinect/v1.7/lib/amd64/" -lKinect10
LIBS += -lOpenGL32
LIBS += -lglew32
LIBS += -lglu32

标题:

#include <windows.h>
#include <gl/glew.h>
#include <QByteArray>
#include <QGLWidget>
#include <memory>
#include <algorithm>

完整的 initializeGL() 函数:

void OpenGLWidget::initializeGL(){
    GLenum err = glewInit();
    if (GLEW_OK != err)
    {
      /* Problem: glewInit failed, something is seriously wrong. */

    }
    glEnable(GL_TEXTURE_2D); //Enables the drawing of 2D textures
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width(), height(), 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, (GLvoid*) NULL);
    glBindTexture(GL_TEXTURE_2D, textureId); //Binds the GL_TEXTURE_2D to the textureId
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width(), height(), 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, (GLvoid*) blackScreen); //Strart the program off with a black screen
    glBindTexture(GL_TEXTURE_2D, textureId); //Binds the GL_TEXTURE_2D to the textureId
    glClearColor(0,0,0,0);
    glClearDepth(1.0f);
}

我究竟做错了什么?

4

1 回答 1

0
  • 您的 Qt 版本是否支持 OpenGL?信不信由你,有些人不信。这就是我的情况,它让我发疯。下载支持 OpenGL 的 Qt 版本并替换您拥有的版本。如果一切顺利,你应该没有问题。
  • 如果您不想下载预烘焙版本,则必须从头开始构建 Qt。这需要 Python、Perl,可能还有 Ruby,并且需要一点耐心(因为它从来没有教程让你想的那么简单)。
  • 您得到的错误代码似乎是一个似乎已在此处解决的链接错误。希望能解决它。
于 2013-07-27T14:24:29.973 回答