DirectX Missing Files Problem

Started by
8 comments, last by circlesoft 18 years, 1 month ago
Hi, I've been working on my project, and decided to give a copy to my mate for testing to find any bugs, however the first one he came across was an error message upon loading: This application has failed to start because d3dx0_28.dll was not found. Re-installing the application may fix this problem. I'm including d3d9.h and d3dx9.h & d3d9.lib and d3dx9.lib. What am i doing wrong. Im using VS C++ 2005 (no .net used) (Oh btw, using Release configuration doesn't compile because errors appear from d3dfont.cpp which is written by microsoft.)
Advertisement
This might sound stupid but does your friend have either the version your using of directx or newer installed on his computer?
Both of us have directx version DirectX 9.0c (4.09.0000.0904) as stated in dxdiag. Sorry forgot to mention that detail, i did check :)
The D3DX library was moved out into DLLs in a DirectX SDK release last year.

Each time a new feature is added to D3DX or something is fixed, MS bumps up the version number of the D3DX DLL and gives it a new name. These new/improved versions of D3DX are released with new releases of the DirectX SDK.

D3DX9_28.DLL is the version of D3DX that shipped in the October 2005 DirectX SDK Update. If your friend doesn't have either the October 2005 SDK installed, or the redistributible files from the October 2005 SDK installed, then he'll see this error when running your program.

Solutions:

1) Run the redistributible installer from the October 2005 SDK on his machine to install updated versions of the D3DX libraries. This is what you'd have to do to be able to redistribute your application anyway - so it'll be good practice [smile]

or

2) Copy the D3DX9_28.DLL from your machine to his - either into the Windows\system folder (so that all applications can see it) or into the same folder as your application .exe file lives (so that just your application can see it - Windows searches windows/system first).

or

3) Install the October (or newer) DirectX SDK on his machine. [Probably not the best option if he's not a developer - or ok if he is]

Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site

seems strange to call it D3DX0_28.dll then next D3DX0_29.dll etc

Quote:Original post by S1CA
2) Copy the D3DX9_28.DLL from your machine to his - either into the Windows\system folder (so that all applications can see it) or into the same folder as your application .exe file lives (so that just your application can see it - Windows searches windows/system first).
Tut-tut - that's bad [grin]

D3DX was moved to DLL's so they'd be serviceable via Windows Update (security, bugs etc..) and from what I've been told it needs to be properly registered with the system. Applications might find it if you manually copy it, but Windows Update won't.

Also, it's worth noting that it's against the licence agreement to distribute a "stand alone" DLL file with your application. The only legal way is by pointing at the Microsoft website or by including the proper DXSetup packages.

The
web installer
should sort you out - it'll check the system and install the optional components (the various D3DX DLL's included)..

Jack

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

Quote:Original post by jollyjeffers
Quote:Original post by S1CA
2) Copy the D3DX9_28.DLL from your machine to his - either into the Windows\system folder (so that all applications can see it) or into the same folder as your application .exe file lives (so that just your application can see it - Windows searches windows/system first).
Tut-tut - that's bad [grin]

[snip]

Also, it's worth noting that it's against the licence agreement to distribute a "stand alone" DLL file with your application. The only legal way is by pointing at the Microsoft website or by including the proper DXSetup packages.


Yeah, I know, I know[smile]. That suggestion was more to get the thing up and running in a test environment - I agree though - I should have put a disclaimer/cautionary note on there too: "...but don't use that method for final distribution of your application - do it the proper way (redist or download)".

Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site

Quote:Original post by FMDGames
seems strange to call it D3DX0_28.dll then next D3DX0_29.dll etc


Yeah, the 0 in the name is extremely odd - I actually thought you/your friend had just made a typo. The official DLLs (including the ones installed with the February 2006 SDK) are all of the form D3DX9_nn.DLL. Have you linked with any 3rd party libraries or modified versions of the DirectX SDK at all?


Oh, and on the above DLL stuff, windows/system should be windows/system32 - but see Jack's post about why that isn't the right way to redistribute the D3DX DLLs.

Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site

Only other libraries im linking are lua (which are static) and winmm.lib which im not sure about (but i dont have to worry anyways)
Quote:Original post by jollyjeffers
D3DX was moved to DLL's so they'd be serviceable via Windows Update (security, bugs etc..) and from what I've been told it needs to be properly registered with the system. Applications might find it if you manually copy it, but Windows Update won't.

eeeeeek... /runs backlogged runtime installers from past year [grin]
Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )

This topic is closed to new replies.

Advertisement