• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
ols

D3DX9_24.dll

38 posts in this topic

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
0

Share this post


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

Share this post


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

Share this post


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

Share this post


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

0

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites
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!
0

Share this post


Link to post
Share on other sites
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!
0

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites
Quote:
Original post by Evil Steve
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.


Good points all..

Yeah I'm crossing my fingers that they'll have something either proposed or in place for the June release.

Is this a ploy to "coherce" developers over to .NET I wonder?

ie. Since you HAVE to download the latest distributable to have the proper D3DX DLL, then you're getting the managed runtimes "for free"....a 2-for-1 combo!

Evil Steve, I hear what you're saying, but if you're gonna start blaming the user for not being able to run your software, then you might as well work for free. ;)

Diplomacy is paramount here to keeping up to date with MS, while at the same time placating your customer base.

Or you chuck in the towel and stick with DX8.1...;o
0

Share this post


Link to post
Share on other sites
Quote:
Original post by wazoo69
Is this a ploy to "coherce" developers over to .NET I wonder?
Nah. They're too busy coercing people over to MSVS.NET and Windows XP as a development platform. [rolleyes]
0

Share this post


Link to post
Share on other sites
This is terrible, this is almost a reason for me to give openGl its first (in my opinion) point against DX, in the past few versions.


Can one not link to an older d3dx9.lib while still compiling with the newest version directx? just replace the new lib with the old?

Is there anyway to communicate this problem with microsoft?

[Edited by - Halsafar on April 27, 2005 3:54:34 PM]
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Halsafar
This is terrible, this is almost a reason for me to give openGl its first (in my opinion) point against DX, in the past few versions.


Can one not link to an older d3dx9.lib while still compiling with the newest version directx? just replace the new lib with the old?

Is there anyway to communicate this problem with microsoft?


You could try, but nothing will change here for the D3DX DLL. It's been mandated from on high. Their address is posted on the DX website.

And AFAIK you won't be able to reference an older version of the lib with the newer SDK. You'll need to get your hands on an older DX9.0 SDK to hang onto the static library.

Yup I've heard of this entity called "OpenGL". *grin*

0

Share this post


Link to post
Share on other sites
Quote:
Original post by Halsafar
This is terrible, this is almost a reason for me to give openGl its first (in my opinion) point against DX, in the past few versions.

Yeah, its a PITA, but wouldn't go so far as "terrible". They are working on a solution to this so give them a bit of time [smile]

It's always struck me as a managerial/corporate policy decision rather than a down-in-the-trenches idea.

Quote:
Original post by Halsafar
Can one not link to an older d3dx9.lib while still compiling with the newest version directx? just replace the new lib with the old?

Stick with the december release of the SDK, it's what me and many other people are doing. If you want the latest-and-greatest features then you're gonna have to bite the bullet.

Quote:
Original post by Halsafar
Is there anyway to communicate this problem with microsoft?

As mentioned above, they do know that developers are a bit irritated by it all (hence we know they're working on a solution). You could always email directx@microsoft.com if you have any particular comments. Alternatively read the archives of the DIRECTXDEV mailing list or the DirectX newsgroupds.

hth
Jack
0

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  
Followers 0