2013-02-15 62 views
0

为了说明这个问题,我对openGL和Visual Studio是新手,所以我可能会错过一些相当明显的东西。我正在学习一个openGL教程,它应该设置一个基本窗口,显示您正在使用的openGL版本信息。OpenGL程序在GL 3.x中工作,但不是4.x

Tutorial | Setup

仅供参考,我在NVidia GTX670m上的64位Windows 7上运行VS2010。当我指定样板程序在openGL v3.x中运行时。它运行得很好。当我指定它在v4.x中运行时。它与下面的输出崩溃(问题后继续):

'Engine.exe': Loaded 'D:\Engine\Engine\Release\Engine.exe', Symbols loaded. 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\freeglut.dll', Binary was not built with debug information. 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\lpk.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\usp10.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\opengl32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\glu32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\ddraw.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\dciman32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\setupapi.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Symbols loaded. 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\devobj.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\dwmapi.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\winmm.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\msvcr100.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\nvinit.dll', Cannot find or open the PDB file 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\uxtheme.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Program Files (x86)\Common Files\Spigot\Search Settings\wth159.dll', Cannot find or open the PDB file 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\psapi.dll', Symbols loaded (source information stripped). 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\ig7icd32.dll', Cannot find or open the PDB file 
'Engine.exe': Loaded 'C:\Windows\SysWOW64\version.dll', Symbols loaded (source information stripped). 
'Engine.exe': Unloaded 'C:\Windows\SysWOW64\version.dll' 
The program '[7332] Engine.exe: Native' has exited with code 1 (0x1). 

在谷歌上搜索这个问题,我看到一些人建议从MS服务器在调试菜单拉动符号和关闭,以警告视为错误选项。我试了两个,但程序仍然崩溃。即使没有,我觉得我仍然应该调查原因。

假设: NVidia将GTX 670列为支持openGL 4.x.它没有明确说670米是支持的,但我假设,如果常规670是 - 移动版本。

问题:如果程序在openGL v3.x下正常工作,并且我的硬件应该支持openGL v4.x,什么原因导致我的程序崩溃?

+1

670m支持OpenGL 4.1。有时候会有差异,所以不要总是假设。根据这个问题,我们可以看到一些代码,以确保GL4扩展程序正确加载? – 2013-02-15 00:54:03

+1

您正在使用Visual Studio。您是否尝试调试应用程序以查看它确切崩溃的位置? – 2013-02-15 00:55:21

+0

@耶稣拉莫斯,你在哪里发现记录?我试图寻找移动细节规格,但我想我看错了地方。 Nicol Bolas我不是调试大师,但我正在努力。我会看看我是否拿出任何东西。 – 2013-02-15 13:48:04

回答

1

您的程序没有崩溃。某些逻辑中的条件可能未被满足,导致不同的分支运行,但它确实运行完成。

除了最后一行外,您发布的任何输出都与您的“问题”没有任何关系,这表明代码输入了以ExitProcess(1)return EXIT_FAILURE结尾的分支。

0

感谢大家的帮助。我结束了在另一台机器上运行这个,并没有遇到问题。无论我的笔记本电脑规格有问题还是使用freeglut

相关问题