glfwCreateWindow returns NULL
glfwCreateWindow returns NULL
我一直在Visual Studio 2015中使用C++进行一个小型openGL项目。我正在使用GLFW和GLEW。
在遇到一些硬件问题(硬盘)后,我在笔记本电脑上重新安装了Windows。现在我尝试继续我的项目,该项目以前运行/调试没有问题,但现在我收到错误。
glfwCreateWindow() 返回 NULL(即使没有任何 glfwWindowHints),glewInit() 也会失败。
我以为这是因为我的驱动程序,但我已经更新了我的集成显卡(英特尔高清 4000)和高性能 Nvidia GPU 的驱动程序。
使用 openGL 扩展查看器,我看到集成卡支持 OpenGL 4.0,Nvidia GPU 支持 4.4。
这个项目相当大,所以为了消除问题,我创建了一个基于GLFW和GLEW的简单三角形代码,但我仍然从glfwWindowCreate()得到错误。
我已经用谷歌搜索过,除了更新驱动程序之外,我找不到其他解决方案。什么会导致此故障?
你是否正确初始化了 glfw?
if(!glfwInit()){
return -1;
}
那么一切都应该没事。
我遇到了同样的问题,glfwInit()
成功但glfwCreateWindow
返回 NULL。但是我犯了一个错误,为主要版本给出 0 而不是次要版本,如下所示。
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 0);
相反
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
确保您已正确提供版本号。
只是发布我的解决方案;我犯了一个愚蠢的错误,我把我的.dll文件放在不同的文件夹中(带有exe文件)。它们应该在项目文件夹中,如果我没有在我猜的项目设置中指定任何其他内容。
我没有注意到的原因是,如果我完全删除了dll文件,我会收到一条dll错误消息,但是通过将dll保留在.exe文件夹中,我无法启动GLFW或glew。
- gdk_screen_get_default() returns null
- FindClass returns null
- SDL_ttf TTF_OpenFont returns NULL
- PKCS7_sign returns null
- C++ CreateWindowEx returns NULL
- wglGetProcAddress returns NULL
- cvCaptureFromCAM(CV_CAP_ANY) returns NULL
- gethostbyaddr() returns null
- glfwCreateWindow returns NULL
- CreateWindowEx returns NULL
- CreateFileMapping() returns null
- C++ LoadLibrary Returns Null
- Jni FindClass returns NULL
- SDL/TTF: TTF_RenderText_Blended_Wrapped returns NULL
- osg::GraphicsContext::WindowingSystemInterface returns null
- JNI- FindClass returns null
- VFW: AVIStreamGetFrameOpen() returns NULL
- engOpen returns Null
- avformat_alloc_context returns null
- TinyXML2 returns Null?