2013-10-09 144 views
-1

我有一个小的和基本的C++程序,我建在使用GLFW和OpenGL,但每当我的朋友试图在她的Windows 8机器上运行它,它没有多余的信息(只是说:“程序已停止立即崩溃的Visual Studio 2012运行“)为什么我的OGL程序无法在WIndows 8上运行?

现在该程序的命令窗口将打开,这其中之前不开放的实际GLFW窗口。所以我在想,也许这是失败的init或窗口打开本身?

的一些细节:

  • 她有版本始建于释放。
  • Win8的机器是64位的,程序是建立在x64机器上32
  • 我静态链接/ MT到构建所以不应该是任何丢失的MSVC DLL发出
  • 这需要我去重建GLFW静态链接它还有
  • 我没有使用任何其他库
  • ,添加到链接器输入的唯一的事情就是“glfw3.lib; opengl32.lib; glu32.lib”

最后这里有一个我摘录窗口创建代码:

glfwWindowHint(GLFW_RESIZABLE, 0); 
m_window = glfwCreateWindow(winSize.x, winSize.y, windowName.c_str(), NULL, NULL); 

if(!m_window) 
    throw std::exception("Window failed to create"); 

glfwGetFramebufferSize(m_window, &m_windowSize.x, &m_windowSize.y); 
glfwMakeContextCurrent(m_window); 

的事情,我可以尝试有什么想法?如果有人想在他们的机器上尝试它,我可以上传exe文件。

+0

是'GLFW_RESIZABLE'实实在在的唯一窗口提示你逝去? API文档似乎表明您需要调用'glfwDefaultWindowHints(...)'。该语言有点含糊,因为这可能意味着默认值从未初始化,或者它们在创建后不会被重置:*提示不会在创建窗口时重置为默认值。要设置默认提示值,请使用'glfwDefaultWindowHints(...)'。*即,如果GLFW3只能获得GDI像素格式,将无法创建窗口,我无法想象这发生在Win8机器上;你永远不会知道。 –

回答

1

告诉你的朋友安装从GPU制造商的网站上下载的图形驱动程序。 Windows自带的图形驱动程序缺乏适当的OpenGL支持。

相关问题