Visual Studio will install the core OpenGL header and library files. This would be enough for you to compile and run OpenGL 1.x with a fixed function graphics pipeline (not that good nowadays). If your users have their video card drivers properly installed, the hardware will automatically execute the OpenGL commands instead of your CPU, otherwise OpenGL will fallback to software rendering on the CPU (only for OpenGL 1.X commands, will not work with any extensions you use). You will need to download the latest OpenGL Extension headers here and install them to your C++ include folder (eg: c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl). glext.h contains all the new APIs. As Reed mentioned, you need this for doing any OpenGL 2.X and newer stuff such as shader development. You should stick to the vanilla functions (eg: glDeleteRenderbuffers) instead of the "ARB" or "EXT" variants (eg: glDeleteRenderbuffersEXT). wglext.h is necessary for Windows-only specific OpenGL extensions. For example, you need this to enable MSAA. glxext.h is the same thing, but for X11 (*nix) based machines. The new APIs are not automatically linked for you with the library that gets installed with Visual Studio. Microsoft stopped supporting OpenGL long ago, but left in support for version 1.X. You need to define all the methods you want to use or use a 3rd party library like GLEW to assist you with this. If you wish to manually link the functions yourself, you can do something like this.
void *GetGLExtension (const char name)
return (void *)glXGetProcAddress((const GLubyte *)name);
void APIENTRY glBindBuffer (GLenum target, GLuint buffer)
if ( !_glBindBuffer )
_glBindBuffer = (PFNGLBINDBUFFERPROC)GetGLExtension("glBindBuffer");
if ( _glBindBuffer )
// else throw an error if you like
This allows you to call glBindBuffer(...) and the code will automatically fetch and run the function if it's available. More advance solutions would check what level of support is available from the user's video card and decide how to render content based on that. Also note that this workaround is only really necessary for Windows based computers. Linux, Mac, iOS, and Android all use an up-to-date OpenGL library with these functions defined for you.