Can not run simple GLUT code.

Hi folks,

I want to start learning OpenGL. So I got myself the Superbible (5th edition) and followed all instructions. Here’s the first code sample:

// Triangle.cpp
// Our first OpenGL program that will just draw a triangle on the screen.

#include <GLTools.h>            // OpenGL toolkit
#include <GLShaderManager.h>    // Shader Manager Class

#ifdef __APPLE__
#include <glut/glut.h>          // OS X version of GLUT
#include <GL/glut.h>            // Windows FreeGlut equivalent

GLBatch triangleBatch;
GLShaderManager shaderManager;

// Window has changed size, or has just been created. In either case, we need
// to use the window dimensions to set the viewport and the projection matrix.
void ChangeSize(int w, int h)
    glViewport(0, 0, w, h);

// This function does any needed initialization on the rendering context. 
// This is the first opportunity to do any OpenGL related tasks.
void SetupRC()
    // Blue background
    glClearColor(0.0f, 0.0f, 1.0f, 1.0f );


    // Load up a triangle
    GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f, 
                          0.5f, 0.0f, 0.0f,
                          0.0f, 0.5f, 0.0f };

    triangleBatch.Begin(GL_TRIANGLES, 3);

// Called to draw scene
void RenderScene(void)
    // Clear the window with current clearing color

    GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);

    // Perform the buffer swap to display back buffer

// Main entry point for GLUT based programs
int main(int argc, char* argv[])


    GLenum err = glewInit();

    if(GLEW_OK != err){
        fprintf(stderr, "GLEW Error: %s
", glewGetErrorString(err));
        return 1;

    return 0;


But somehow I alway run into a “Unhandled exception at 0x00000000 in Triangle.exe: 0x00000005: Access violation reading location 0x00000000”.

Using the debugger it seems the problem lies in SetupRC(). The error occurs when the triangleBatch code is executed. If I comment out trianglebatch.Begin(); + …CopyVertexData3f(vVerts); + triangleBatch.end(); It works and shows the “scene”.

Another issue was that after loading “freeglut_static.lib” I got a message from VS-2008, that there are no rules defined for reading this library. Could this be the problem? If so how could I solve it?

Thanks in advance!

Which GL version are you running?
Which function is causing the crash? You have to determine that for yourself.

I am running GL 3.0, the one you can download for this book.

I actually know that it is in the SetupRC()-function, caused by the trianglebatch-statements. But I do not understand why.

You can’t download OpenGL from some random site. Check what GL version your machine supports.
Use glGetString(GL_VERSION) to find out.

Add glewExperimental=GL_TRUE; before this line

 GLenum err = glewInit();

and tell us if u still get exception.