当前位置: 首页 > 知识库问答 >
问题:

OpenGL应用程序在其他PC上崩溃

萧和平
2023-03-14

我制作了一个OpenGL应用程序,用于测试Framebuffer Objects,该应用程序适用于我制作的笔记本电脑,我拥有的另一台笔记本电脑和我的台式PC。但是,对于我要求为我测试该应用程序的其他人来说,它似乎崩溃了。

到目前为止,我已经将它缩小到在我调用的第一个扩展(在本例中为glGenBuffers)上崩溃,我100%确定在调用该函数(见下文)之前不会调用该扩展。在浏览了许多答案后,我确定了以下几点:

  • 我已检查窗口是否已创建。
  • 我在创建并设置上下文后调用glewInit()。
  • glew实验设置为GL_TRUE。
  • 在这个函数完成之前没有调用gl扩展。
  • 我检查了glGenBuffers不等于null。

它仍然以这种方式在其他PC上崩溃:

  1. 创建的窗口为白色背景,没有清晰的颜色
  2. 弹出一个消息框,显示“application.exe已停止响应”

关于我接下来可以尝试什么的任何想法?

更新:让我的朋友给我发错误消息,这里是:

OpenGL框架中0x7490CB49处未处理的异常。exe:0xC0000005:执行位置0x00000000的访问冲突。

    void CSystem::Initialise()
    {
        if(glfwInit() == GL_FALSE)
        {
            return GL_FALSE;
        }

        glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
        glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
        glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

        glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);

        if(m_bFullscreen)
            window = glfwCreateWindow(1600, 900, "OpenGL", glfwGetPrimaryMonitor(), nullptr); // Fullscreen
        else
            window = glfwCreateWindow(1600, 900, "OpenGL", nullptr, nullptr); // Windowed

        if(window == nullptr)
        {
            return false;
        }

        glfwMakeContextCurrent(window);

        glewExperimental = GL_TRUE;
        if(glewInit() != GLEW_OK)
        {
            return false;
        }

        if(glGetError())
        {
            return false;
        }
    }

共有1个答案

陆绪
2023-03-14

因此,我设法为其他任何想知道的人解决了这个问题。事实证明,即使GLEW没有出现任何错误,它仍然没有正确加载所有扩展。

我通过完全删除GLEW并编写自己的扩展加载器解决了这个问题。这很费时,而且可能不是其他有同样问题的人想听到的-但这确实做到了。

至少对我来说,写一些东西是件好事,这样将来我就可以真正看到哪些扩展无法加载以及如何加载。在这种情况下,通过自己编写它们,它最终完美地工作了。去想想吧!

 类似资料:
  • 我有这个程序你可以看到下面。程序应该将一些东西渲染成一个纹理,渲染的纹理应该被绘制出来显示。但是当调用glBegin(GL_QUADS)时,程序在display()函数处失败。程序结束打印

  • 如果被其他应用程序调用,我的自定义相机应用程序会崩溃。 例如,我的相机是由我的音轨调用的。如果你按下我音轨的相机图标,它会弹出并让用户选择要使用的相机。我试过使用我的相机,但它崩溃了。但是如果我从应用程序菜单中单击相机,我的相机就可以正常工作。 AndroidManifest.xml 我的方法: 日志猫: 相机活动: 这是我的启动器,当我的应用程序启动时首先调用它: 我主要活动的一部分 @Over

  • 如果我设置,则应用程序在打开使用第三方库的活动时就会开始崩溃。 art/runtime/java_vm_ext.cc:410]JNI检测到应用程序中的错误:调用了JNI NewGlobalRef,但出现了挂起的异常java.lang.NoSuchFielderRror:类“LCOM/nTreaming/nPlayerEngine/nFactory;”或其超类中没有“I”字段“MalFactoryC

  • 我创建了一个应用程序,在Android marshmallow中崩溃,而在under版本中我的应用程序正常工作。 这怎么可能?这是我的清单代码: 这是分级代码: 我读到你必须在代码中修改一些东西,使其与AndroidMarshmallow兼容。 我该如何解决问题呢?

  • 我只是做了一个简单的android应用程序,有6个按钮。每点击一个按钮就会打开一个新的活动。我通过的USB电缆在我的设备上安装了这个应用程序,它在我的设备上运行良好。 但问题来了,当我通过分享后,在朋友的设备上安装了应用程序,但应用程序已经安装在他的设备上,但没有运行。 请帮帮忙。谢谢你

  • 我有一个使用Twitter API开发的Nodejs应用程序。当托管在Heroku上时,它会出现以下错误: 2018-12-14T10:00:03.678180 00:00 heroku[web.1]:错误 R10(启动超时)- 在搜索时,我遇到了这些StackOverflow问题q1 q2,但它们都使用ExpressJS并监听固定端口,而不是Heroku提供的端口,而我的应用程序没有使用Expr