2012-09-18 2 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-g ++ "LIBS + = - lglloadD" "LIBS + = -. lopengl32"나는 실행하고

내 Qt는이 4.8.1이며, glsdk은 0.4.4이다 64 비트 버전의 windows7은 winXP의 32 비트 버전에서 발생했습니다.

이 문제의 원인은 무엇이며 어떻게 해결할 수 있습니까?

+1

GL 문맥은 어디에 생성합니까? – genpfault

+0

질문에 대해 전혀 다른 Qt가 없으므로 Qt가 아닌 "Qt Creator"(IDE)를 사용한다고 가정합니다. – 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 자체가 아니라 Qt Creator (IDE)를 말하는 것 같습니다. : s – Bart

0

귀하의 즉각적인 문제는 Qt 또는 OpenGL과 아무 관련이 없다고 가정합니다. (다른 답변에서 Qt와 OpenGL 모두에 대한 포인트가 유효하더라도이를 고려하십시오).

내 가정은 임베디드 매니페스트가 부족한 것이 주요 문제입니다. 당신이 창문에 있다는 것을 감안할 때 qmake/mingw를 사용하고 있다고 가정합니다. 이것은 매니페스트의 자동 삽입이 없음을 의미합니다.

이로 인해 응용 프로그램이 관리자 권한으로 실행되어야한다고 가정 할 수 있습니다. 특히 특정 응용 프로그램 이름의 경우. 아마도 귀하의 응용 프로그램 (exe)이 무엇인지 알려줄 수 있습니다. 당분간 나는 이것을이 문제로 간주한다.

표준 목록을 삽입하는 방법에 대한 자세한 내용은 this excellent blog entry을 참조하십시오.