我制作了一个OpenGL应用程序,用于测试Framebuffer对象,这些对象适用于我制作的笔记本电脑,我拥有的另一台笔记本电脑和我的台式电脑。但是,对于我要求为我测试应用程序的其他人来说,它似乎崩溃了。
到目前为止,我已经将其缩小到崩溃我调用的第一个扩展(在这种情况下,glGenBuffers),我100%确定在调用此函数(见下文)之前不会调用它。在查看了许多答案之后,我确定了以下内容:
它仍然以其他方式在其他PC上崩溃:
关于我接下来可以尝试的任何想法?
更新:要求我的朋友给我发错误信息,这是:
OpenGL Framework.exe中0x7490CB49处的未处理异常: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;
}
}
答案 0 :(得分:0)
所以我设法解决了这个问题,对于其他想要了解的人。事实证明,即使GLEW没有出现任何错误,它仍然没有正确加载所有扩展。
我通过完全删除GLEW并编写自己的扩展加载器解决了这个问题。
,耗费时间,可能不是其他有同样问题的人想要听到的 - 但这样做了。至少对我来说,写一些东西是好的,以便将来我可以看到哪些扩展无法加载以及如何加载。在这种情况下,通过自己编写它们,它最终完美地工作。去图!