2014-07-26 2 views
0

는 짧은 코드는 다음과 같다 : error C2065: 'PFNGLBINDPROGRAMARB' : undeclared identifier.컴파일 오류 선언되지 않은 식별자

내가 체크 한 : 내가 컴파일 할 때, 나는 컴파일 오류가 발생했습니다

#include <windows.h> 
#include <GL/gl.h> 
#include <GL/glext.h> 
int main(int argc, char** argv) 
{ 
    PFNGLBINDPROGRAMARBPROC glBindProgramARB; 
    glBindProgramARB=(PFNGLBINDPROGRAMARB)wglGetProcAddress("glBindProgramARB"); 
} 

헤더 파일 glext.h하지만 PFNGLBINDPROGRAMARBPROC이 있습니다 (라인 2922). 내 질문에 도움을 청합니다.

Visual Studio 2012를 사용하고 있으며 포함 디렉터리 설정을 확인했습니다. 기타 시스템 정보 : Windows 7 64 비트, 최신 드라이버가 설치된 nVidia Geforce 카드. 다른 관련 정보가 필요한 경우 요청하십시오.

링크 오류가 아니기 때문에 컴파일 오류가 발생하므로 확장 기능 glBindProgramARB (내 시스템에 존재하며 glutGetProcAddress를 사용하여 검사했습니다)와는 아무런 관련이 없습니다.

FreeGlut 및 GLEW 라이브러리 함수가 동일한 기능을 수행 할 수 있다는 것을 알고 있습니다. 하지만 위의 코드가 컴파일러를 통과 할 수없는 이유와이를 수정하는 방법에 대해 궁금합니다.

답변

2

PFNGLBINDPROGRAMARBPROC이 정의되어 있지만, PFNGLBINDPROGRAMARB은 정의되어 있지 않습니다. 이 두 가지 중 첫 번째를 선언에서 사용하지만 두 번째는 형식 캐스트에서 사용합니다.

PFNGLBINDPROGRAMARBPROC glBindProgramARB; 
glBindProgramARB=(PFNGLBINDPROGRAMARB)wglGetProcAddress("glBindProgramARB"); 
+0

감사합니다. . – user280121

관련 문제