   visual studio opengl problem
  Hi,i've been going through the examples (in C++) at the start of the book "Beginning OpenGL Game Programming". I'm getting a lot of "undeclared identifier" and "identifier not found" errors for all of the opengl-related identifiers (glViewport, GL_PROJECTION, glMatrixMode, GLfloat, etc). i've linked the opengl32 and glu32 .lib files into input->additional dependencies. i'm not sure what's going on. any help would be great. this is the code:#define WIN32_LEAN_AND_MEAN // trim down the libraries used#include <windows.h> // main Windows headers#include <gl/gl.h>#include <gl/glu.h>#include <gl/glaux.h>#include <stdafx.h>float angle = 0.0f;HDC g_HDC;void SetupPixelFormat(HDC hDC){int nPixelFormat;static PIXELFORMATDESCRIPTOR pfd = {sizeof(PIXELFORMATDESCRIPTOR),1,PFD_DRAW_TO_WINDOW |PFD_SUPPORT_OPENGL |PFD_DOUBLEBUFFER,PFD_TYPE_RGBA,32,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,PFD_MAIN_PLANE,0,0,0,0};nPixelFormat = ChoosePixelFormat(hDC, &pfd;SetPixelFormat(hDC, nPixelFormat, &pfd;}LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){static HGLRC hRC;static HDC hDC;char string[] = "Hello world!";int width, height;switch(message){case WM_CREATE:hDC = GetDC(hwnd);g_HDC = hDC;SetupPixelFormat(hDC);hRC = wglCreateContext(hDC);wglMakeCurrent(hDC,hRC);return 0;break;case WM_CLOSE:wglMakeCurrent(hDC,NULL);wglDeleteContext(hRC);PostQuitMessage(0);return 0;break;case WM_SIZE:height = HIWORD(lParam);width = LOWORD(lParam);if(height == 0){height = 1;}glViewport(0,0,width,height);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,1.0f,1000.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity();return 0;break;default:break;}return (DefWindowProc(hwnd,message,wParam,lParam));}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nShowCmd){WNDCLASSEX windowClass;HWND hwnd;MSG msg;bool done;windowClass.cbSize = sizeof(WNDCLASSEX);windowClass.style = CS_HREDRAW | CS_VREDRAW;windowClass.lpfnWndProc = WndProc;windowClass.cbClsExtra = 0;windowClass.cbWndExtra = 0;windowClass.hInstance = hInstance;windowClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);windowClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);windowClass.lpszMenuName = NULL;windowClass.lpszClassName = "MyClass";windowClass.hIconSm = LoadIcon (NULL, IDI_WINLOGO);if(!RegisterClassEx(&windowClass))return 0;hwnd = CreateWindowEx(NULL,"MyClass","A real app",WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 100, 100, 400, 400, NULL, NULL, hInstance, NULL);if(!hwnd)return 0;ShowWindow(hwnd, SW_SHOW);UpdateWindow(hwnd);done = false;while (!done){PeekMessage(&msg, hwnd, NULL, NULL, PM_REMOVE);if(msg.message == WM_QUIT){done = true;}else{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();angle = angle + 0.1f;if (angle >= 360.0f)angle = 0.0f;glTranslatef(0.0f,0.0f,-5.0f);glRotatef(angle,0.0f,0.0f,1.0f);glColor3f(1.0f,0.0f,0.0f);glBegin(GL_TRIANGLES);glVertex3f(0.0f,0.0f,0.0f);glVertex3f(1.0f,0.0f,0.0f);glVertex3f(1.0f,1.0f,0.0f);glEnd();SwapBuffers(g_HDC);TranslateMessage(&msg;DispatchMessage(&msg;}}return msg.wParam;}   
  Do you have these headers on your system? :#include <gl/glu.h>#include <gl/glaux.h>   ;  yes   ;  Do you have the gl library linked as well?   ;  What version of visual studio are you using ? I somehow doubt it is capable of finding the listen opengl library files.   ;  i have opengl32.lib and glu32.lib linked. and i'm using visual studio 2005   ;  ok, i've fixed it by moving #include <stdafx.h> before the rest of the #include's.   