PDA

View Full Version : How do you get the exe to run on another computer?



Timlankey
06-28-2010, 01:12 PM
I have created a project that I want to send to an employer and I tried to send it to my roommate but the .exe won't run on his computer because it said the side by side configuration is not correct.

I found some info online saying that it must be the glut32.lib, glut32.dll and glut.h files that cannot be found, so I removed the files from my build machine and I linked the project to use the glut files in the project folder itself.

The program compiles again and I can get the .exe to run on the build machine but once again it won't run on another computer.

Any suggestions as to what I can do? Or why I'm getting this side by side configuration issue?

Sorry, once again I'm really noob with this stuff.

Simon Arbon
06-28-2010, 09:36 PM
Side-by-side is a system that MicroSoft came up with to try to solve the problem of different applications wanting to use different versions of the same DLL.
This is mostly a problem with C++ libraries, especially those that register themselves as COM objects.
Instead of trying to fix the cause of the problem they decided to just shove a copy of every version of every DLL into a folder called C:\WINDOWS\WinSxS (Windows side-by-side) then create a "manifest" (either as a separate file or embedded inside the exe file) which tells windows which version of the DLL to use.

Translated into english, your error message means "The manifest in your exe file has requested a version of a DLL which is not stored in this computers WinSxS folder"

To run the program you need to install the correct version of the correct DLL in the correct place on the users machine.
But then the error message doesn't bother to tell you which file you need, so your only real option is to find the "Redistibutable" installer, that hopefully came with your compiler, and include it with your program installation.

If that doesn't work then the only other option is to statically link your program (including all the libraries you use inside the exe instead of linking to separate DLL's).