OpenGL program: DirectX / nVidia compatibilty bug(???) problem

When I’m using OpenGL in my program(s), it runs OK the first time I run it. But the second time I run the program, it displays the message that ddhelp.exe caused some error while accessing nvdd32.dll. So ddhelp.exe is helper from DirectX, and nvdd32.dll is DirectX compatibility from nVidia. The third time I run the program, the exit code is “-1”. Doesn’t matter which DirectX version installed – I tried 8.0 and 8.1 as well.

I am wondering: if I do NOT use any DirectX code in my programs(I am using only OpenGL code in there for graphics), why then it linked somehow with DirectX?

I guess this should be some nVidia hardware compatibility bug then, as I’ve heard someone has the same bug on the same type video adapter I use.

Video: nVidia TNT2 Vanta
Compiler: VC++6.0(SP4 doesn’t help with this bug)

Any opinions how to resolve this problem(except for buying some new video adapter though ) ?

Oh, and I forgot to mention that it is the same bug on nVidia GeForce2MX400 I had.

The drivers I tried were Detonator v28.32 and v29.42 – no changes in result.

OS: Win98SE

it uses direct draw to get access to the framebuffers, and other hw, i think…

I think the problem is the ‘old’ OS (Win98). Possible solutions:
The DirectX SDK has an app called KillHelp.exe which you should call once after starting the OS. But, unfortunately this doesn’t work always.
In my experience it’s better to start a DirectX app once before starting an OpenGL app and then the problem disappears. Maybe you have to try different DirectX apps until you find one which is doing something magic with the the OS!


Originally posted by Matwey:
[b]Oh, and I forgot to mention that it is the same bug on nVidia GeForce2MX400 I had.

The drivers I tried were Detonator v28.32 and v29.42 – no changes in result.

OS: Win98SE


I had exactly the same problem

Something similar happens to me on Win98SE with a TNT2 card and some nvidia drivers: I can only run one OpenGL app per reboot, the second an successive OpenGL apps will fail to create the OpenGL context, normally with a GPF in DDHELP.DLL.

I think this problem comes from incorrect deinitialisation of directdraw when directdraw is started by an OpenGL app (by the ICD on behalf of the ogl app). In 2K and XP directdraw is started at boot time, but under Win9x it’s started when the first DX/OGL app starts (I think this is the case on NT as well), so looks like the ogl app has to deinitialise ddraw when it’s closed, it doesn’t do it properly and the next time an ogl app tries to initialise ddraw again, it fails.

My workaround was to start any DirectDraw app before running any ogl app (MediaPlayer will do). That allows me to run several ogl apps per boot, as the ogl app already finds ddraw initialised and it doesn’t deinitialised it when closed.

Hope that helps.

EDIT: Password verification failed the first time and I had to rewrite the message

EDIT2: Nvidia driver 23.11 doesn’t seem to have this problem.

[This message has been edited by evanGLizr (edited 08-27-2002).]

Thanx for your response!

Oh yeah, I noticed too that after some programs it works normally. But it kinda happens occasionally, so never know which one works fine for this(Btw, killhelp doesn’t work too). Anyway, that should be some more convenient way to do that, right?

Speaking about Detonator v23.11, when I was reading Jedi Outcast’s troubleshooting, there was some mention that it works with v23.11 nVidia drivers. So I decided to get those drivers and see if it works for my problem or not. And it doesn’t.

So I guess the problem might be with compiler, as any precompiled examples are working fine in exe, but due to a compiling it is the same bug with them.

I am wondering, if there’s some way to reset the whole DirectX interface in one shot in an OpenGL app or not? I’m kinda not using DirectX, so I don’t know how to do that…(well, I guess I have to figure that out for now, see ya later!)


When killhelp unloads ddhelp, it displays that some event with the name ‘hackevent’(?!) is unloaded!!! What’s that event supposed to be??? Could that be some kind of malicious attack on my machine???

Please, help!..

(Btw, the idea came to my mind: what if just to put the killhelp.exe in “Run” section of the registry? So that it would be started every time the system reloads?)

how about stop using win98? get a copy of win2000 and your problems can fly away…

i know this sounds now like a flamewar, but i’ve seen several persons with different problems that simply sounded stupid. told them to move to win2000, they did, now stuff works how they except them to work…

I agreed I guess I should try your advice. Thanx!

I was a passive(I hope) witness of a flamewar between people in some other place these days. And it was awful. Poor peace is definately better than a “good” war. Everyone has own opinion. And I respect yours. Thanx for advice once again! So far, people gave some usefull info in here, and it’s appreciated very much!