2012-09-18 17 views
2

嘗試在Qt中使用glload創建OpenGL應用程序,我測試了示例代碼。Qt中的glload錯誤

#include <iostream> 
#include <windows.h> 
#include <glload/gl_all.h> 
#include <glload/gll.hpp> 

using namespace std; 

int main() 
{ 
    glload::LoadFunctions(); 
    cout << "Hello World!" << endl; 
    return 0; 
} 

但是當我運行它,它停止工作。調試錯誤是

無法運行「:請求的操作需要提升

構建命令是

qmake.exe C:\用戶\ Benbroher \測試\ test.pro -r -spec Win32的克++ 「LIBS + = - lglloadD」 「LIBS + = - 。lopengl32」

我Qt是4.8.1,並且glsdk是0.4.4 我正在運行64位版本的Windows7,它發生在32位版本的winXP中。

什麼可能會導致這種情況,我該如何解決它?

+1

你在哪裏創建GL上下文? – genpfault

+0

既然Qt沒有具體的關於你的問題,我假設你的意思是「Qt Creator」(IDE)而不是Qt? – Bart

回答

0

只有創建了有效的OpenGL上下文並使其處於最新狀態,才能加載OpenGL函數。 The documentation is very clear on this

+0

謝謝。這是我的錯。我之前沒有仔細閱讀過這些文檔。我認爲,「初始化OpenGL和結合上下文」是沒有必要的,glload :: LoadFunctions()必須在代碼中的第一個。 – Benbrother

+0

真的嗎?這解決了您所需的高程問題?非常令人驚訝,但對你有好處。 – Bart

0

QApplication對象實例在哪裏?沒有這個,大部分的Qt都不起作用。

+0

雖然我認爲這不是一個Qt問題。我猜OP是指Qt Creator(IDE)而不是Qt本身。 :s – Bart

0

我認爲你的直接問題與Qt或OpenGL無關。 (儘管在其他答案中提到的有關Qt和OpenGL的觀點都是有效的,請考慮它們)。

我的假設是缺乏嵌入式清單是您的主要問題。鑑於你在windows上,我假設它使用qmake/mingw,這可能意味着沒有自動嵌入清單。

這有時會導致Windows假定應用程序需要以管理員權限運行。尤其對於某些特定的應用程序名也許你可以告訴我們你的應用程序(exe)被稱爲什麼。現在我認爲這是問題。

有關如何嵌入一個標準的清單信息,看看this excellent blog entry