Access Violation in wglMakeCurrent

Started by
4 comments, last by TomTetlaw 12 years, 9 months ago
When I try to call wglMakeCurrent, I get an access violation. My program only runs in one thread and one window, and I've got a valid device context and rendering context, I can't see what the problem is. I'm using VC++ 2010 and am running Widows 7 64-bit.

EDIT: Sys_Error is just an error reporting function, just does a MessageBox then exits.

static HDC gl_devcontext;
static HGLRC gl_rcontext;

void _GL_Init (void)
{
int pf;
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, 32, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0
};

gl_devcontext = GetDC (W_GetHandle());
if (!gl_devcontext)
Sys_Error ("Couldn't get device context!");
pf = ChoosePixelFormat (gl_devcontext, &pfd);
if (!SetPixelFormat(gl_devcontext, pf, NULL))
Sys_Error ("Couldn't choose pixel format!");

gl_rcontext = wglCreateContext(gl_devcontext);
if (!gl_rcontext)
Sys_Error ("Couldn't create OpenGL Rendering Context!");

if (!wglMakeCurrent(gl_devcontext, gl_rcontext))
Sys_Error ("Couldn't set device context and rendering context!");
}
Advertisement

I've got a valid device context...
[/quote]
I don't see any error checking for this, how are you determining this?
Sorry, this is now an outdated version of this function, I will edit now. (I still get the same error, BTW)
Can you post the full error message, and any stack information associated with it?
I hope this helps.

The full error message is:

Unhandled exception at 0x02cbf4e6 in Game_VOID-2011.exe: 0xC0000005: Access violation reading location 0xbaadf049.

The stack at the point of the crash is:

> nvoglv32.dll!02d9f4e6()
[Frames below may be incorrect and/or missing, no symbols loaded for nvoglv32.dll]
nvoglv32.dll!02e65fc0()
nvoglv32.dll!02d9f91e()
nvoglv32.dll!02da0e7d()
nvoglv32.dll!02e5aa39()
kernel32.dll!75913677()
ntdll.dll!77539f02()
ntdll.dll!77539ed5()


The debug output from Visual Studio:

'Game_VOID-2011.exe': Loaded 'C:\Users\Tom\Documents\Visual Studio 2010\Projects\Game_VOID-2011\Debug\Game_VOID-2011.exe', Symbols loaded.
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\opengl32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\lpk.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\usp10.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\glu32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\ddraw.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\dciman32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\setupapi.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\devobj.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\dwmapi.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\uxtheme.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\nvoglv32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\wintrust.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\crypt32.dll', Cannot find or open the PDB file
'Game_VOID-2011.exe': Loaded 'C:\Windows\SysWOW64\msasn1.dll', Cannot find or open the PDB file
The thread 'Win32 Thread' (0xdd8) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1774) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x38c) has exited with code 0 (0x0).
First-chance exception at 0x02d9f4e6 in Game_VOID-2011.exe: 0xC0000005: Access violation reading location 0xbaadf049.
Unhandled exception at 0x02d9f4e6 in Game_VOID-2011.exe: 0xC0000005: Access violation reading location 0xbaadf049.
Wow, my god. After all this, it turns out that hWnd was the cause of the problem. It was being set to NULL because CreateWindowEx couldn't find the window class I gave it because I miss-typed it. Thankyou for your help anyway!

This topic is closed to new replies.

Advertisement