Trouble redistributing game

Started by
3 comments, last by Ashaman73 12 years, 2 months ago
Hi guys,

I am a University student studying Game Development. As part of a recent project, I am trying to compile my game in Release mode in order to distribute it to others. The game was written in C++ using Visual Studio 2008. The engine I am using is Gadget2D (http://roswellgames.com/gadget2d/), an engine being developed by one of the teaching assistants to one of my professors. After compiling in Release mode, I copy the required dll files into the same directory including those for DevIL, glfw, as well as fmod. The game runs fine on my computer, with no problems. When tried on other computers, the game will not run. My first instinct is that the other computers were missing the Visual C++ Redistributable files, which I then installed, to no avail. If anybody has any ideas on how I can go about solving this problem I would greatly appreciate it.

Thanks
Advertisement
Try running something like this to see what DLLs are missing.


Could be the C++ runtime version, could be Direct X missing, etc.
What is the error message, something like 'The application has failed to start because its side-by-side configuration is incorrect' ?

This is often a problem with the crt dlls (common runtime library, a standard lib from microsoft). In this case your program try to link to a certain version of the same library which is not available on the target computer (btw. very frustrating). You could try to install the vredist_86/64.exe on the target computer (found on the MS download pages over here). Other options are to statically link to this library (often not possible, when using other dlls) or you can redistribute the right dlls (in this case you need to change the manifest).
Serapth, I had tried that program prior to posting and it didn't appear any of the dll's were missing, so I'm guessing it's because they have the wrong version of the same library. Ashaman73, I read about that somewhere else too, but i'm still fairly new to all of this. How and what would I need to change in the manifest and would I get the right dll's from my Visual Studio program files' folder inside the redist folder?

Serapth, I had tried that program prior to posting and it didn't appear any of the dll's were missing, so I'm guessing it's because they have the wrong version of the same library. Ashaman73, I read about that somewhere else too, but i'm still fairly new to all of this. How and what would I need to change in the manifest and would I get the right dll's from my Visual Studio program files' folder inside the redist folder?

First off you should check which library is missing. When the target computer has vista/windows7(xp?) installed you can take a look at the windows logs(events) after starting your program failed. To do this, take a look at system->computer management->event viewer->windows logs->application. There should be your program listed with an entry about your missing dll (more information about the event viewer is over here).

The next thing you can check out is to not embed your manifest . In visual studio go to the project properties (where you setup the C++,Linking,Debugging... configuration) of your project. There is also a configuration for 'manifest tool'. There you can disable the embedding of your manifest file. This will write out the manifest file next to your exe (more infos). Post it here for further analyses (more informations about crt & SxS is over here).

This topic is closed to new replies.

Advertisement