glfwCreateWindow返回NULL [关闭]

问题描述 投票:0回答:3

我一直在Visual Studio 2015中使用C ++开发一个小型的openGL项目。我正在使用GLFW和GLEW。

在遇到一些硬件故障(硬盘)后,我在笔记本电脑上重新安装了Windows。现在我尝试继续我的项目运行/调试之前没有问题,但现在我收到一个错误。

glfwCreateWindow()返回NULL(即使没有任何glfwWindowHints),glewInit()也会失败。

我认为这是因为我的驱动程序,但我更新了我的集成显卡(Intel HD 4000)和我的高性能Nvidia GPU的驱动程序。

使用openGL扩展查看器,我看到集成卡支持OpenGL 4.0和Nvidia GPU支持4.4。

这个项目相当大,所以只是为了消除问题我创建了一个基于GLFW和GLEW的简单创建三角形代码,但我仍然从glfwWindowCreate()得到错误。

我用google搜索,除了更新驱动程序,我找不到其他解决方案。什么可能导致这种失败?

c++ opengl glfw
3个回答
1
投票

你正确地启动了glfw吗?

if(!glfwInit()){
    return -1;
}

那一切都应该没问题。


1
投票

刚发布我的解决方案;我犯了一个愚蠢的错误,我将.dll文件放在不同的文件夹中(使用exe文件)。它们应该在项目文件夹中,如果我没有在项目设置中指定任何其他内容我猜。

我没注意到的原因是,如果我完全删除了dll文件,我收到了一条dll错误消息,但是通过保留在.exe文件夹中,我无法启动GLFW或glew。


0
投票

我遇到了glfwInit()成功但glfwCreateWindow返回NULL的问题。但是我为MAJOR版本提供了0而不是像下面的MINOR版本那样犯了一个错误。

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 0);

代替

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);

确保您已正确提供版本号。

© www.soinside.com 2019 - 2024. All rights reserved.