d3dx9_25.dll, d3dx9_26.dll, d3dx9_30.dll ...

Started by
6 comments, last by GameDev.net 17 years, 4 months ago
Hi, I have a following problem. When I launch my game on another computer (one without any IDEs or SDKs installed) I get: "Cannot find d3dx9_25.dll" and the game quits. On some other computers the same .exe requested d3dx9_26.dll or d3dx9_30.dll or even d3dx9.dll The only way to lauch the game was to find d3dx9.dll and rename it to d3dx9_25.dll for example... I don't think this is the right way (?) Should I alway supply this dll with my exe? How do I call it (_25,_26,_30,etc.) ? I can't believe I have to keep all of the versions with my exe? Why aren't they in system32 already? How does it all work with version numbering? (Why different machines request different versions for the same exe) Please, can someone explain how it works, and how do I do it right? I use VC6. (maybe that's the problem? I heard my projects using DX9 shouldn't work at all! But the do :) )
Advertisement
I'd highly recommend upgrading to VC2005, it's free after all. However, that's not the problem here.

d3dx9_xx.dll is the D3DX library DLL. For a while now, D3DX has been moved into a DLL for security reasons (If a security exploit is found in D3DX, MS can patch the DLL through Windows Update, which they can't do if it's a .lib file). Because of that, you're not allowed to distribute the DLL with your application - if a patchd version is released on Windows update, your unpatched version would be used, nullifying the fix. For testing, sending the DLL should be fine, but don't stick it on a website or anything.

The correct way to do it is to include the DirectX redistributable (It's in the SDK) with your application, which will install the correct DLL version.
Aaaah :) So that's what it's all about! Thanks!
I think this topic is the perfect definition of Frequently Asked Question [lol]. You could've found out all the relevant details from the SDK documentation or from the updated FAQ (found in this thread stuck to the top of the forum listing). The section on redistribution being of particular interest.

Cheers,
Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

This is the new retarded way Microsoft is doing DirectX 9, or more specifically, D3DX9. It's included by DLL but they're releasing versions every two months.

My advice is to use DX8.1 until DX10 comes out.
Quote:Original post by Anonymous Poster
This is the new retarded way Microsoft is doing DirectX 9, or more specifically, D3DX9. It's included by DLL but they're releasing versions every two months.

My advice is to use DX8.1 until DX10 comes out.
While we're at it, why not go back to DX7? I mean, that's not getting updated either...
The casual gamer market is only using DX 7 and 8. If you want your game played (for now) you don't want DX 9.
Quote:Original post by Anonymous Poster
The casual gamer market is only using DX 7 and 8. If you want your game played (for now) you don't want DX 9.


Hear, hear!

I had no end of user support problems until I rolled my interfaces back to use DX8.1..

This topic is closed to new replies.

Advertisement