PDA

View Full Version : d3dx9d_33.dll not found



Traveler
17-07-2009, 03:02 PM
System: anything above Win98 SP2 I believe
Compiler/IDE: Turbo Delphi Explorer & Delphi 2009
API: DirectX

Hi guys,

I'm having some trouble compiling a game I'm making. At home I use Turbo Delphi Explorer which compiles the thing without problems. However, at work I use Delphi 2009 in a few cases I have a lost hour available to spend on the game.
The issue is that using D2009 I can't seem to run the game after compiling. It always comes up with an error that d3dx9d_33.dll is required to run.

I have searched the web, and there were a few references that I should reinstall DirectX but that did not seem to work. Some also mentioned I should compile the game as stand-alone whatever that means, as d3dx9d_33.dll is really only required for debug purposes.

So in short, the question is, why is it that after compiling in D2009 the games says I need d3dx9d_33.dll while after compiling in TDE all is fine? And, secondly, how can I resolve this issue so that I can compile the game without having the need for d3dx9d_33.dll?

Big thanks.

NecroDOME
17-07-2009, 03:07 PM
I don't know, but you could check which version of DX you have and for which version you are compiling. What also works is to put the dll next to the .exe.
Did you try installing/reinstalling DirectX on the that pc? Could be due some older DX versions.

Traveler
17-07-2009, 03:15 PM
That's a fast reply :)

I have DX9.0c installed (on a clean windows installation). The game engine (HGE) requires DX9 (or 8 ). I have tried to locate the dll but the one I found didn't resolve the problem. It also doesn't solve the issue that I can compile and run the game using TDE while I cant using D2009.

tpascal
17-07-2009, 05:13 PM
It also doesn't solve the issue that I can compile and run the game using TDE while I cant using D2009.


But in your first post you said when you compile using TDE you do it in your computer home, and d2009 is in a different computer; so most likely the problem is not the compiler but the machine directx.

At your computer home check if the d3dx9d_33.dll file exist in windows\system32 folder, if so copy that to the other computer.

Traveler
18-07-2009, 12:22 PM
I've tried to locate the d3dx9d_33.dll file on my home pc, but I couldn't find it.

I've done some more digging and it appears that d3dx9d_33.dll is a debug version developers can use it to, well, debug their applications. Once a stable version is reached it is possible to compile to a version that requires d3dx9_33.dll to run. That file however is available on any normal DirectX installation.

From what I understand, (but haven't tested yet), I could install the DirectX SDK (+500mb) which comes with the necessary dll's and also a Control Panel which allows me to set the option to switch to debug or release. Apparently it is also possible to download the Control Panel separately , but sadly in my case many options were disabled, including the one to switch between debug and release.

For the moment I'm going to assume this is a necessary step to continue. Although it still does not explain why I my home installation has no issues, while the setup at work does.

tpascal
18-07-2009, 04:45 PM
Have you tried copying and running the executable gererated from d2009 into your home computer?, if it run ok then it is the machine directx setup, else it is the compiler.

If the same source code generate different executable you should check first the delphi project default compiling options in both machines; there are options that discard debug info into the exe, etc and stufs.

Also some units you are using could include some {IFDEF} compiling paths which depend from some default compiler {DEFINES} which could be causing your D2009 generate code calling different DLL, you should search for d3dx9d_*.dll into your directx units.