2013-02-15 59 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

相關問題