Qt和GLEW:程序退出,代码为107374155

Qt and GLEW: The program exited with code -1073741515

本文关键字:代码 107374155 退出 程序 GLEW Qt      更新时间:2023-10-16

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

program.exe exited with code -1073741515

更多详细信息:libs:

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);
}

我做错了什么?

  • 您的Qt版本是否支持OpenGL?信不信由你,有些人不会。我就是这样,这让我发疯了。下载一个支持OpenGL的Qt版本,并替换您现有的版本。如果一切顺利,你应该不会有问题
  • 如果你不想下载预烘焙版本,你必须从头开始构建Qt。这需要Python、Perl,可能还有Ruby,而且需要一点耐心(因为它从来没有教程中想象的那么容易)
  • 你得到的错误代码似乎是一个链接错误,似乎已经在这里解决了。希望这能解决问题