Managed DirectX dependancies?

Started by
9 comments, last by Muhammad Haggag 18 years, 3 months ago
Well i wrote this very basic directx application in c# using VS 2003 .NET it renders a textured .x file model and has a camera class which allows you to look arround. Everything compiles fine and looks correct on my screen. BUT When i send the application file, the .x file and the appropriate texture files to a friend of mine ( yes i tested it with multiple ppl all having 2.0 framework) It crashes on initialisation. With different errormessages on different systems. What really suprises me is that some of the error messages are "Application has generated an exception that could not be handled." errors while my main function is one big try catch exception block, which should fetch all exceptions right? So my question: Do i need to include additional files to the application to make it work for other people besides me. ( I'm building in Release Mode and using DirectX SDK december 2005) Any suggestions? EDIT: Fixed some grammar/spelling :P
-->My Site<--
Advertisement
Distributing DirectX Applications. In short, you must make sure they have the December MDX runtime, and the D3DX dll if you use it. Read the article for details.

hm, one question about that:
if i write my dx application with the june sdk, do the enduser need the june runetime or can they also use the december runtime? (IMHO it would be total crap if they need the june runtime)
Well, you could write your app with the december one ;)
"Game Programming" in an of itself does not exist. We learn to program and then use that knowledge to make games.
You can just include the runtime files with your MDX application. Simply set the Copy Local properties to true on the projects references to the MDX libraries. This will copy the necessary DLLs to your output directory for easy distributing, so you'll always have the correct DLLs with your app.

You will need to manually copy the appropriate D3DX DLL with it too, since when you're using MDX, you're probably also using D3DX. The total size of the dependencies is be about 1.6 MB for MDX and 2.2 MB for D3DX, which shouldn't be too much to download these days.

Edited: can't type, need sleep
Rim van Wersch [ MDXInfo ] [ XNAInfo ] [ YouTube ] - Do yourself a favor and bookmark this excellent free online D3D/shader book!
Quote:Original post by compiler
hm, one question about that:
if i write my dx application with the june sdk, do the enduser need the june runetime or can they also use the december runtime? (IMHO it would be total crap if they need the june runtime)

They would need the June runtime.

Quote:You can just include the runtime files with your MDX application. Simply set the Copy Local properties to true on the projects references to the MDX libraries. This will copy the necessary DLLs to your output directory for easy distributing, so you'll always have the correct DLLs with your app.

You will need to manually copy the appropriate D3DX DLL with it too, since when you're using MDX, you're probably also using D3DX. The total size of the dependencies is be about 1.6 MB for MDX and 2.2 MB for D3DX, which shouldn't be too much to download these days.

Even though that'd technically work, it's illegal. You can't distribute DirectX components directly that way - you have to use DirectSetup.

Quote:Original post by Muhammad Haggag
Quote:Original post by compiler
hm, one question about that:
if i write my dx application with the june sdk, do the enduser need the june runetime or can they also use the december runtime? (IMHO it would be total crap if they need the june runtime)

They would need the June runtime.

Quote:You can just include the runtime files with your MDX application. Simply set the Copy Local properties to true on the projects references to the MDX libraries. This will copy the necessary DLLs to your output directory for easy distributing, so you'll always have the correct DLLs with your app.

You will need to manually copy the appropriate D3DX DLL with it too, since when you're using MDX, you're probably also using D3DX. The total size of the dependencies is be about 1.6 MB for MDX and 2.2 MB for D3DX, which shouldn't be too much to download these days.

Even though that'd technically work, it's illegal. You can't distribute DirectX components directly that way - you have to use DirectSetup.


This is one of the reasons I utterly despise Microsoft's decision to make the D3DX runtime dynamic rather than statically built into the program. Making sure they have the exact version of the runtime you built against even if they have the latest version of DirectX isn't fun at all. They should at least include the D3DX libraries with the latest version of DirectX.
Quote:Original post by Muhammad Haggag
Quote:...


Even though that'd technically work, it's illegal. You can't distribute DirectX components directly that way - you have to use DirectSetup.


So I've read just yesterday in the topic you linked to from this thread... I guess my 4e4 entry was illegal as well then :)

Anyway, how does Microsoft expect us to easily deploy our MDX apps then? DirectSetup seems to be a C++ feature only (a search through the MDX docs confirms this), so we'll have to switch back to C++ to create a decent installer. If we MDX-ers all would be that comfortable with C++, we probably wouldn't be using MDX...

Catch22 yet again :)
Rim van Wersch [ MDXInfo ] [ XNAInfo ] [ YouTube ] - Do yourself a favor and bookmark this excellent free online D3D/shader book!
Quote:Original post by remigius
Anyway, how does Microsoft expect us to easily deploy our MDX apps then? DirectSetup seems to be a C++ feature only (a search through the MDX docs confirms this), so we'll have to switch back to C++ to create a decent installer. If we MDX-ers all would be that comfortable with C++, we probably wouldn't be using MDX...

Just include the components you want with DXSetup.exe and launch it from your installer.

Right... Ignorance got the better of me, sorry :)

Since December 2005 MDX is installed by default too right? So we no longer have to use the /WithMDX (or something like that) switch? If you could confirm that, I'll stop complaining for real now ;)
Rim van Wersch [ MDXInfo ] [ XNAInfo ] [ YouTube ] - Do yourself a favor and bookmark this excellent free online D3D/shader book!

This topic is closed to new replies.

Advertisement