Jump to content

  • Log In with Google      Sign In   
  • Create Account


D3DX9_24.dll


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
38 replies to this topic

#1 ols   Members   -  Reputation: 128

Like
0Likes
Like

Posted 07 April 2005 - 04:15 AM

I am sure I am not the first person to have this problem, but wondered if there was a yet a known solution for it. I am writing my program using the Feb 2005 release of the DirectX SDK, but other people cant run it becuase 'd3dx9_24.dll' is missing from their systems, even though the latest available version (9.0c) of DirectX is installed. It is possible to obtain this single missing dll from the web, but Microsoft prohibits distribution of it, and its also a hassle as it has to be manually placed in the correct directory. Microsoft's solution is to distribute the DirectX redistributable with your program, but this is over 30 megs, and my program is just over 1 meg, so seems a bit ridiculous. Just wondered if anyone else has encountered or solved this problem. Cheers, Ols

Sponsor:

#2 Cambo_frog   Members   -  Reputation: 692

Like
0Likes
Like

Posted 07 April 2005 - 04:33 AM

Quote:
Original post by ols
I am sure I am not the first person to have this problem, but wondered if there was a yet a known solution for it. I am writing my program using the Feb 2005 release of the DirectX SDK, but other people cant run it becuase 'd3dx9_24.dll' is missing from their systems, even though the latest available version (9.0c) of DirectX is installed.

It is possible to obtain this single missing dll from the web, but Microsoft prohibits distribution of it, and its also a hassle as it has to be manually placed in the correct directory.

Microsoft's solution is to distribute the DirectX redistributable with your program, but this is over 30 megs, and my program is just over 1 meg, so seems a bit ridiculous.

Just wondered if anyone else has encountered or solved this problem.

Cheers,

Ols

The latest SDK( april 2005) uses a DLL for D3DX functions, while previous versions of the SDK used a static library for D3DX, so you are probably one of the first find this problem.

I agree that if the only way to redistribute this DLL(legally) is with all the other DirectX redistributibles this is a real drag, especially as the SDK gets updated every couple of months these days.
Search Google newsgroup archives on "DirectX" and "DLL hell" to find other people have the same concerns.
*** edit ***
Feb version too?

With you,
Cambo_frog

#3 PaulHig   Members   -  Reputation: 142

Like
0Likes
Like

Posted 07 April 2005 - 04:52 AM

I just recently ran into this same problem. I used this latest SDK to create a small Demo (about 250K). I have been simply including this DLL in my download. It may not be strictly legal but this is just a simple demo application ... I am not selling anything, and I want to keep it as small as possible. I'll check at the Microsoft web site to see if any more information is available.

#4 Cambo_frog   Members   -  Reputation: 692

Like
0Likes
Like

Posted 07 April 2005 - 04:56 AM

Quote:
Original post by PaulHig
I just recently ran into this same problem. I used this latest SDK to create a small Demo (about 250K). I have been simply including this DLL in my download. It may not be strictly legal but this is just a simple demo application ... I am not selling anything, and I want to keep it as small as possible. I'll check at the Microsoft web site to see if any more information is available.


I have a feeling a lot of people may do the same :)

Cambo_frog

#5 wazoo69   Members   -  Reputation: 157

Like
0Likes
Like

Posted 07 April 2005 - 06:57 AM

Not that it helps *right now* but I did hear the MS team is working on a solution for this very problem.

I'm experiencing the same thing myself, moving code back and forth between dev machines (one with the Feb2005 SDK and one with the new April2005 SDK) and it's a bit annoying.

Is it possible to link to the static version of the D3DX library, or do we forever have this new round of "DLL Hell" with differing versions of the D3DX Dll?

I guess it's time to crack open the header files to see if there's any #define's to take advantage of here..



#6 paulble   Members   -  Reputation: 349

Like
0Likes
Like

Posted 07 April 2005 - 07:54 AM

Quote:
Original post by jollyjeffers
I'll see if I can find a link to it, but theres been some fairly harsh words said on the DIRECTXDEV mailing list about it - and the DirectX team have been quite open in accepting that it's completely f***ed up [smile]
Jack


Well, I'm not sure I'd characterize our response that way. [smile]

The main issue at hand is that moving d3dx to a dll has exposed some holes in our "always ship the redist with your application" recommendation. We are working on plugging those holes, but we're doing so based on discussions and feedback from developers. The Apr05 SDK update has the first step toward that goal -- developers can customize the redist to remove some components they don't require for their application. The remaining problem is that developers can't remove the main xp 9.0c bits. We're working on that but making that kind of change takes time to test and verify - we like doing that.

Paul Bleisch
WGGT Solutions

#7 Cambo_frog   Members   -  Reputation: 692

Like
0Likes
Like

Posted 07 April 2005 - 08:59 AM

Quote:
Original post by jollyjeffers
From my reading-between-the-lines of their replies, it sounds like a requirement imposed by top level Microsoft management.


Quote:

You can easily see why management-types would love the idea [grin]. It's just us developers that get punched in the face at the end of the day...


Yup, this says it all really.
Management getting involved in decisons they don't undersand the consequences of.I have seen it all before as I am sure many others have ...sigh

--
Cambo_frog


#8 wazoo69   Members   -  Reputation: 157

Like
0Likes
Like

Posted 07 April 2005 - 09:11 AM

Poor Paul...damned if you do, damned if you don't.

The world cries out for tougher security measures from MS, then we turn around and bitch when things go the other way..:)

Paul, I guess with this track "chosen" by the DirectX team, I guess it's too late to include both a static and dynamic version to link to with each SDK update. *grin*

But is there a way to lockdown which version of the D3DX DLL you're compiling to in your application (besides only using the header files from a particular SDK version..ie. Dec. 2004 or Feb. 2005 whatever).

Can I #define a specific D3DX Version??

ie. #define USE_D3DX9_24

Just a thought...thanks for your patience with us.

#9 paulble   Members   -  Reputation: 349

Like
0Likes
Like

Posted 07 April 2005 - 10:53 AM

Quote:
Original post by wazoo69
Poor Paul...damned if you do, damned if you don't.

The world cries out for tougher security measures from MS, then we turn around and bitch when things go the other way..:)

Paul, I guess with this track "chosen" by the DirectX team, I guess it's too late to include both a static and dynamic version to link to with each SDK update. *grin*

But is there a way to lockdown which version of the D3DX DLL you're compiling to in your application (besides only using the header files from a particular SDK version..ie. Dec. 2004 or Feb. 2005 whatever).

Can I #define a specific D3DX Version??

ie. #define USE_D3DX9_24

Just a thought...thanks for your patience with us.



The version of the DLL required by your app is determined when you link your app. For example, d3dx9_24.dll is the Feb05 version of the dll, the only way your app will require that dll is if you build your app against the d3dx9.lib that is included in the Feb05 sdk. The Apr05 version is _25, the June one may or may not be _26 (new sdk release does not necessarily mean new dll release). The assumption we're making right now is that ISVs ship the dx redist that came with the SDK that their app was built against. If one needs to ship multiple exes that link to different versions of d3dx (i.e. a.exe needs d3dx9_24.dll and b.exe needs d3dx9_25.dll), you can make that work too (see docs).

So, in short, you choose which dll you want/need by choosing which SDK you link to.

#10 hplus0603   Moderators   -  Reputation: 4984

Like
0Likes
Like

Posted 07 April 2005 - 10:59 AM

For now, the solution is to use the December SDK, which doesn't require a DLL for D3DX.

Microsoft claims they are working on a better solution; possibly a downloadable installer that's a few hundred k which would download and update whatever components necessary on the user's machine.


#11 ols   Members   -  Reputation: 128

Like
0Likes
Like

Posted 07 April 2005 - 11:17 AM

Looks like I have opened a can of worms here!!!

From what I can tell then there is no immediate answer apart from, slightly dubiously, including the dll with my download, or linking to somewhere where you can download it - i have already found a couple of sites online if people want the links and then they themselves are not really doing anything dodgy!

Cheers for all the replies thus far...makes an interesting read!

#12 wazoo69   Members   -  Reputation: 157

Like
0Likes
Like

Posted 07 April 2005 - 02:58 PM

Quote:
Original post by ols
Looks like I have opened a can of worms here!!!

From what I can tell then there is no immediate answer apart from, slightly dubiously, including the dll with my download, or linking to somewhere where you can download it - i have already found a couple of sites online if people want the links and then they themselves are not really doing anything dodgy!

Cheers for all the replies thus far...makes an interesting read!


Whoa...you can't do that right? Distributing the DLL on your own is against the EULA isn't it? (I thought that's what this thread was aboot!)

this is an especially jading experience for me.

I'm trying to write my first book on game programming using DirectX and what happens:
-DirectPlay is kaiboshed
-DirectMusic is beaten, tossed and buried
-Now the D3DX DLL "issues"

*sigh*

(To make it worse, I'm not even 100% positive that the book's code will work once it ships in Q4...there's 2 more DX SDK "updates" between now and then!)

Oh the humanity!


#13 circlesoft   Members   -  Reputation: 1174

Like
0Likes
Like

Posted 07 April 2005 - 04:37 PM

Quote:
Original post by wazoo69
Whoa...you can't do that right? Distributing the DLL on your own is against the EULA isn't it? (I thought that's what this thread was aboot!)

Good question...if you crack open the redist folder, you will see many files, including:

*MONTH*2005_d3dx9_*_x64.cab
*MONTH*2005_d3dx9_*_x86.cab

So, I suppose that you are still supposed to just give your users the redistributables. That package will then install the D3DX DLL.

Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )

#14 paulble   Members   -  Reputation: 349

Like
0Likes
Like

Posted 07 April 2005 - 05:28 PM

Quote:
Original post by wazoo69
Quote:
Original post by ols
Looks like I have opened a can of worms here!!!

From what I can tell then there is no immediate answer apart from, slightly dubiously, including the dll with my download, or linking to somewhere where you can download it - i have already found a couple of sites online if people want the links and then they themselves are not really doing anything dodgy!

Cheers for all the replies thus far...makes an interesting read!


Whoa...you can't do that right? Distributing the DLL on your own is against the EULA isn't it? (I thought that's what this thread was aboot!)

this is an especially jading experience for me.

I'm trying to write my first book on game programming using DirectX and what happens:
-DirectPlay is kaiboshed
-DirectMusic is beaten, tossed and buried
-Now the D3DX DLL "issues"

*sigh*

(To make it worse, I'm not even 100% positive that the book's code will work once it ships in Q4...there's 2 more DX SDK "updates" between now and then!)

Oh the humanity!


If you are shipping a copy of the SDK with the book or pointing people at a version of the SDK, you should be fine as the SDK installs d3dx9_xx.dll during setup.

Paul Bleisch


#15 hplus0603   Moderators   -  Reputation: 4984

Like
0Likes
Like

Posted 07 April 2005 - 05:38 PM

Quote:
From what I can tell then there is no immediate answer


What's hard about downloading the December 2004 SDK and linking with that? It doesn't have the D3DX DLL problem; it's a static library in release mode in Dec04. There's not THAT much difference between Dec04 and Apr05.

#16 SirMike   Members   -  Reputation: 122

Like
0Likes
Like

Posted 20 April 2005 - 04:12 AM

Quote:

What's hard about downloading the December 2004 SDK and linking with that? It doesn't have the D3DX DLL problem; it's a static library in release mode in Dec04. There's not THAT much difference between Dec04 and Apr05.

It is. AFAIR The ID3DXFont interface is much better in latest releases.

#17 jollyjeffers   Crossbones+   -  Reputation: 1538

Like
0Likes
Like

Posted 20 April 2005 - 04:17 AM

Quote:
Original post by SirMike
Quote:

What's hard about downloading the December 2004 SDK and linking with that? It doesn't have the D3DX DLL problem; it's a static library in release mode in Dec04. There's not THAT much difference between Dec04 and Apr05.

It is. AFAIR The ID3DXFont interface is much better in latest releases.

Well I suppose it'd be a simple choice:

- If you need the latest-and-greatest features, learn to adapt/live with the whole dynamic D3DX DLL issue.

- If you can get by without the latest-and-greatest, use the older statically linked D3DX.

[smile]

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

#18 DrunkenHyena   Members   -  Reputation: 805

Like
0Likes
Like

Posted 20 April 2005 - 06:01 AM

Quote:
Original post by SirMike
Quote:

What's hard about downloading the December 2004 SDK and linking with that? It doesn't have the D3DX DLL problem; it's a static library in release mode in Dec04. There's not THAT much difference between Dec04 and Apr05.

It is. AFAIR The ID3DXFont interface is much better in latest releases.

I don't have my release notes handy but I don't believe any significant changes were made to D3DXFont over that time period.
Stay Casual,KenDrunken Hyena

#19 Trip99   Members   -  Reputation: 577

Like
0Likes
Like

Posted 20 April 2005 - 10:53 AM

Not much has changed but it is a pain to have to stay with the December release - I suspect a lot of people are doing so because of this. I have an app (T2) that I could rebuild with the later SDK but then I would be stuck as users would not have the dll, I am not allowed to include it and to include the redistributable would make the T2 download huge and probably break my bandwidth.

What has happpened in effect is that Microsoft have release DirectX 9.0d but not admitted to/realised it :) By moving D3DX into a .dll they have made the runtime required for the latest SDK different from Directx 9.0c. I can understand why they have done it but all they have to do to fix it is to allow us to distribute just the dll.
------------------------See my games programming site at: www.toymaker.info

#20 Evil Steve   Members   -  Reputation: 1955

Like
0Likes
Like

Posted 20 April 2005 - 12:07 PM

Quote:
Original post by Trip99
What has happpened in effect is that Microsoft have release DirectX 9.0d but not admitted to/realised it :) By moving D3DX into a .dll they have made the runtime required for the latest SDK different from Directx 9.0c. I can understand why they have done it but all they have to do to fix it is to allow us to distribute just the dll.
Or just release "DX 9.0d" [smile]
Even if all it includes is a few versions of the D3DX DLL, users will still download and install it if Windows Update says it's needed. Of course I understand that there's a lot of users who won't, but at least this way you can blame the user. As it is, the user just turns around and says "Oh, but I already have the latest DirectX version, so it must be your program".
Hopefully all this will be sorted soon though.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS