Dark Bit Factory & Gravity

PROGRAMMING => C / C++ /C# => Topic started by: va!n on June 03, 2007

Title: DirectX9 vs DirectX 10 init problem
Post by: va!n on June 03, 2007
we have coded some small DX9 based functions... however with DX9 it works fine on XP.... On vista it dont work... due fact of init failing...  seems Vista with DX10 dont have any DX9 dll O.O Someone an idea how to solve this, or does everynbody, even game companies rewrite their games to run on vista with  DX10 ?

Problem: d3dx9.dll
Title: Re: DirectX9 vs DirectX 10 init problem
Post by: Jim on June 04, 2007
Are you trying to use LoadLibrary on that DLL?  I don't think this is a Vista problem.  The only thing Microsoft removed from Vista in terms of being compatible with all previous versions of DirectX are d3drm.dll (Retained Mode) which hasn't been supported for years and is considered a security risk, and dpvoice.dll.
Now, on my system I have
Code: [Select]
d3dx9_25.dll
d3dx9_26.dll
d3dx9_27.dll
d3dx9_28.dll
d3dx9_29.dll
d3dx9_30.dll
d3dx9_31.dll
d3dx9_32.dll
d3dx9d_32.dll
d3dx10.dll
d3dx10d.dll
The two ending in 'd' are the debug versions of those libraries with symbols in.  The others are the same as the ones that are on my other XP machines.  I'm not sure why we get a newly numbered version of d3dx9 each time, but that is surely your problem.

Jim
Title: Re: DirectX9 vs DirectX 10 init problem
Post by: va!n on June 04, 2007
do you have the vista home version? seems on vista home the d3dx9* dlls are not available.... and yes, we are searching for d3dx9 dlls with the extension 24 to 31 ^^ as i said, on XP the initialisation works fine... but on vista it failed  ???
Title: Re: DirectX9 vs DirectX 10 init problem
Post by: Jim on June 04, 2007
I have Vista Ultimate.  But if you use google to search about this problem, it's not uncommon http://www.google.com.au/search?hl=en&ie=UTF-8&oe=UTF-8&q=vista%20home%20d3dx9%20missing&sa=N&tab=gw (http://www.google.com.au/search?hl=en&ie=UTF-8&oe=UTF-8&q=vista%20home%20d3dx9%20missing&sa=N&tab=gw)
The only thing you can do is get the user to install the DirectX9c End User Runtime, which I've probably done as part of installing the DirectX SDK.

Jim
Title: Re: DirectX9 vs DirectX 10 init problem
Post by: va!n on June 04, 2007
ok, the user can install DirectX9c End User Runtime package... guys like us know about this and how to do this... but i see no sence, while people on vista with DX10 must or should install an older DX version (v9) to get run older games, demos i.e...

It cant be, that M$ is doing such a dirty thing O.O ... when i code for DX9, i would llike that people with even DX10 (on vista) can run my programs without having to install any DX End User package... A lot of my private clients are happy when they can start their games... they dont know how to install DX nor whatever DX means or is used for O.O

So, seems M$ is really doing a dirty thing with DX9 support on Vista, right? And seems there is no other "clean" way, to solve this problem without linking DLLs nor without installing an oder DX9 version of the DX10? really strange...
Title: Re: DirectX9 vs DirectX 10 init problem
Post by: taj on June 04, 2007
So, seems M$ is really doing a dirty thing with DX9 support on Vista, right? And seems there is no other "clean" way, to solve this problem without linking DLLs nor without installing an oder DX9 version of the DX10? really strange...

Totally agreed...
Title: Re: DirectX9 vs DirectX 10 init problem
Post by: Jim on June 04, 2007
I can't say I agree completely.  I agree it is peculiar that sometimes the DX9 install is incomplete on Vista.  I can't explain that.

But, if your users can install your application they're capable of installing a DirectX update.  If you use DirectX in your commercial applications, you should always include the DirectX End User Runtime that corresponds with your application as part of the install process.

Updating Vista with the lastest DirectX9c runtime (should be called 9m) will only update the parts that are outdated or broken.  So it will fix a broken DX10 install and update a DX9 install.  Remember, the latest DirectX End User Runtime was released after Vista was released, so it contains updates and security fixes.

Jim