OpenGL32.dll

For what I understand OpenGL32.dll is only used for software OpenGL. And hardware is done in you drivers. OpenGL32.dll supports version 1.1 And your drivers can support all versions.

If I’m right with this, way do I have to link with OpenGL32.dll?

OpenGL32.dll loads the hardware accellerated functions from your drivers. The OpenGL functions you actually call (e.g., glVertex3f, glBegin, etc.) are located in OpenGL32.dll. If you have an accelerated GL context, these function calls are passed on to the driver’s functions. So yes, opengl32.dll does provide a generic software implementation of GL, but it is also necessary to load the proper functions from the driver(s). I have no idea if one could manually load the hardware accellerated functions. It probably wouldn’t be worth the effort.

Because opengl32.dll is the connection between OpenGL and your application.

opengl32.dll is not only used for software rendering. It also contains the mechanism to automatically load an external driver if present, and use that one if possible.

Gotta love double posts

I have no idea if one could manually load the hardware accellerated functions. It probably wouldn’t be worth the effort.

No, you can’t load functions directly from the driver. Ok, maybe you CAN in some cases, but you shouldn’t be able to at least. A driver should not expose the functions as exports, which is required to load a function. Only opengl32.dll should, or maybe even can, load functions from the driver.