Sign in to follow this  
FMDGames

DirectX Missing Files Problem

Recommended Posts

FMDGames    134
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.)

Share this post


Link to post
Share on other sites
FMDGames    134
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 :)

Share this post


Link to post
Share on other sites
S1CA    1418
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]

Share this post


Link to post
Share on other sites
jollyjeffers    1570
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

Share this post


Link to post
Share on other sites
S1CA    1418
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)".

Share this post


Link to post
Share on other sites
S1CA    1418
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.

Share this post


Link to post
Share on other sites
circlesoft    1178
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]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this