tomster1996's picture

Unable to find an entry point named 'glCreateShader' in DLL 'opengl32.dll'.

When i try to create a shader it seems that a function is missing from the opengl dll file.

When i compile this code:

class Shader
    {
        static string vertexSource = System.IO.File.ReadAllText("Resources/Shader/dirLightAmbDiffSpecPix.vert");
        static string fragSource = System.IO.File.ReadAllText("Resources/Shader/dirLightAmbDiffSpecPix.frag");
 
        public static void start()
        {
            int vert = GL.CreateShader(ShaderType.VertexShader);
            int frag = GL.CreateShader(ShaderType.FragmentShader);
            GL.CompileShader(vert);
            GL.CompileShader(frag);
            int prog = GL.CreateProgram();
            GL.AttachShader(prog, vert);
            GL.AttachShader(prog, frag);
            GL.UseProgram(prog);
        }
    }

I get this error message:
"Unable to find an entry point named 'glCreateShader' in DLL 'opengl32.dll'."

Whats going on here and how can i fix it?


Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
the Fiddler's picture

This means that your video drivers do not support this method. What video card are you using? Try upgrading your drivers, if possible.

(Yes, a better error message would be nice).

tomster1996's picture

Ive got a rubbish chipset built into my laptop. This wont support shaders im guessing?

the Fiddler's picture

It depends, it might just be a matter of installing the correct drivers. All nvidia and ati chips support shaders, as do intel chips starting with X3000 or so. Older intel chips might also support shaders but intel's drivers don't expose that capability on WinXP (but do so on Linux and maybe Vista/Win7). If you have a Sis/Via/etc are usually out of luck.

Try searching the website of your laptop manufacturer for updated drivers. If you can't find anything there, try downloading from intel.com/nvidia.com/ati.com directly.

Alternatively, you might be able to use software rendering via Mesa as a substitute for hardware support (see http://mesa3d.org). It will be very slow but you'll be able to use your laptop for development purposes, which is all that matters.

tomster1996's picture

I still get the same problem even when i use mesa 3d. i can tell its using mesa 3d because the program runs at about 1 fps :(
Plus my chipset rivers are up to date.

the Fiddler's picture

Try using glview to see whether your system supports shaders. You need OpenGL v2.0 or higher.

tomster1996's picture

Yeah i have version 1.5
is there a way i can update opengl ?

the Fiddler's picture

Your best bet is to try http://intel.com and download the latest driver for your OS and display adapter. You can find the model of your adapter through Control Panel -> Device Manager -> Display Adapters.

Chances are, you are using an Intel 945GM or similar chip. (Of course, if the Device Manager lists Nvidia or Ati you should go to their respective websites).

tomster1996's picture

Nope no new drivers. My chip is Intel Chipset series 4 family.

tomster1996's picture

This says that my graphics card should support shaders, http://www.intel.com/support/graphics/sb/cs-014257.htm.
And spore uses opengl pixel shader and that game works on my computer.

c2woody's picture

If glview reports the version as 1.5 then the drivers do not expose shader programming which was introduced with OpenGL 2.0 (vertex/fragment shaders).

Can you check the date (and possible full version number) of the graphics card drivers?