1.7.x & D3D9 (dll) problem


18-11-2009 16:44:15

So, I installed 1.7.x, changed and copied the necessary files to get my program running (works in 1.6.1 & 1.6.4) and ran into a wall.

OGRE EXCEPTION(7:InternalErrorException): Could not load dynamic library .\data\plugins\RenderSystem_Direct3D9.dll. System Error: The specified module could not be found.

in DynLib::load at .\src\OgreDynLib.cpp (line 89)

Okay, I verified that it's pointing to the correct path (it was), and that it was the correct version of the dll (it was). Next I tried commenting the line for that dll out in the plugins.cfg, the other plugins all loaded fine. Ok, tried downloading the latest dx9 redistributable from microsoft and running it. As I suspected, I already had the latest version.

Spent a few hours wandering google trying to find someone else who had a similar problem at some point... but none of them (none I found anyway) were still having the issue after taking the above steps.

Am I just completely overlooking something simple here or what?


19-11-2009 05:43:22

While I was expecting a number of issues with 1.7 (after all it's based on the Ogre SVN) this wasn't one of them !!

Can you check the file size/date on .\data\plugins\RenderSystem_Direct3D9.dll -- also does your game/tests run using the OpenGL renderer ??



21-11-2009 01:09:21

Do you happen to be using a DX10 machine (Vista, Window 7 etc) ?????

If you then you will need to edit your plugins.cfg (in ./demos and also inside some of the demo folders) to change from DX9 to DX10..



23-11-2009 16:37:56

Sorry for the slow response, I decided to take a break for a few days.

Unfortunately, there's some issue with my program at the moment where OGL crashes (started happening after I introduced threading... haven't found the disconnect yet. Also wasn't a big issue, since I was intending the final version to be DX9 only.

That said, OGRE 1.7.x gets a bit farther than 1.6.1 with OGL, and actually gives me information on the crash!
File [...], line 365, etc.
ogre.renderer.OGRE._ogre_exceptions_.OgreInternalErrorException: OGRE EXCEPTION(7:InternalErrorException): Cannot create GL vertex buffer in GLHardwareVertexBuffer::GLHardwareVertexBuffer at .\src\OgreGLHardwareVertexBuffer.cpp (line 46)

As for DX10, I'm running on WinXP, so I can't test if it's working under that.

Date Modified: Thursday, November 12, 2009, 7:55:03 PM
Size: 451 KB (462,336 bytes)

I will try to run a demo in OGL/DX9 with 1.7.x and see how it goes. Will update here once I do.

Okay, so I found a very very very old version of my program on my thumb drive, got it running in 1.7.x with only a few tweaks under OGL. Under dx9 it complains that I'm missing D3DX9_42.dll. (Checked my windows folder, sure enough only up to 41, despite having ran the latest redistributable on Microsoft's website...) Ran the End-User installer just now, and it gave me D3DX9_42.dll. Yay!

So my program now runs, and I can have it run on either monitor without DX9 crapping its pants. Awesome. :D (Though I notice if the render window overlaps across two screens, it returns to crapping itself. But oh well, that's certainly manageable.)