Application won't work on other computers

Started by
12 comments, last by FordPrefectA 15 years, 9 months ago
My program works fine on my computer but anyone I send it to gets this error: "This application has failed to start because the application configuration is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix this problem. For more details, please see the application event log" It uses SDL (just the core library) and OpenGL/GLU. Additional dependencies in Linker->Input are: "SDL.lib SDLmain.lib opengl32.lib glu32.lib" Source is here: http://www.dekasinthevents.org/ProjectDeka.rar I included msvcr90.dll and SDL.dll when I sent distributed it (D-walker said msvcr90.dll was the only redis file it used). I had one person run Dependency Walker and the only DLL they didn't have that I had was "EFSADU.dll". I searched and found a thread about it here. After I tried multi threaded mode and got the same error as he did I didn't bother trying the rest (stuff about recompiling the libraries) since it didn't resolve his problem anyway. And I'm using Visual C++ 2008 Express. Any idea what's wrong? [Edited by - FordPrefectA on July 3, 2008 8:22:16 PM]
Advertisement
I might be wrong (this problem gets tricky sometimes) but since microsoft introduced side-by-side assemblies in VC8, you can no longer just put the VC run-time dlls in the app directory.

There are different solutions I believe, but what we do is include this folder "Microsoft.VC90.CRT" in the directory with the .exe. Inside the folder are the dlls.

You can find this folder: \Microsoft Visual Studio 9\VC\redist\x86

Hope that helps...
It didn't work but thanks.
You're supposed to include this redistributable package with your application. Usually it's run silently from within your own installer.
Ra
Visual C++ 2008 Runtime Redist x86
Visual C++ 2008 Runtime Redist x64
How to redistribute the Visual C++ Libraries with your application

To make it is hell. To fail is divine.

Quote:Original post by Ra
You're supposed to include this redistributable package with your application. Usually it's run silently from within your own installer.

Didn't work.
I set the project to build as release instead of debug and it worked. I thought they were just identical templates. :P Thanks everyone.
Try this:

Go to Project->Properties

Then in the window that opens up, go to the Configuration Properties->C/C++->Code Generation section. Once you are there, find the entry that says "Runtime Library". It will say either "Multi-threaded (/MT)", "Multi-threaded Debug (/MTd)", "Multi-threaded DLL (/MD)", or "Multi-threaded Debug DLL (/MDD)". Select the "Multi-threaded (/MT)" option.

After making that change, keep the Project Properties window open. This time though go to the Configuration Properties->Linker->Manifest File. Now you should see an option called "Generate Manifest". Select it and change it to "No".

This should make it so you don't have to include msvcr90.dll anymore (the only .dll's you'll need are ones like SDL.dll, you won't need the Microsoft Visual Studio ones anymore).
[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]
When I do /MT I get this error:

1>------ Build started: Project: Project Deka, Configuration: Release Win32 ------
1>Compiling...
1>main.cpp
1>deka.cpp
1>Linking...
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _isspace already defined in LIBCMT.lib(_ctype.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)
1>LIBCMT.lib(crt0init.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\Project Deka\Release\Project Deka.exe : fatal error LNK1169: one or more multiply defined symbols found
1>Build log was saved at "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\Project Deka\Project Deka\Release\BuildLog.htm"
1>Project Deka - 3 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Hmmm... strange...

Okay, I think I found out what it is. In the project properties, go to Configuration Properties->Linker->System and change the "SubSystem" field to "Not Set". At least it fixed it for me. If this ends up breaking another thing in your project, then it may not be worth it.
[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

This topic is closed to new replies.

Advertisement