Sign in to follow this  
FordPrefectA

Application won't work on other computers

Recommended Posts

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 [url="http://www.gamedev.net/community/forums/topic.asp?topic_id=406590"]here[/url]. 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]

Share this post


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

Share this post


Link to post
Share on other sites
You're supposed to include this redistributable package with your application. Usually it's run silently from within your own installer.

Share this post


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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites
Sorry to keep posting, but I just wanted to add a one more thing: it looks like you can enable the manifest file generation as long as you have the other options set like I said. Sorry I've been vague or if my answers aren't perfect, I'm just learning this myself and am letting you know what works for me.

Share this post


Link to post
Share on other sites
With system not set I get this message, which stays the same whether I have MT or MD set.

1>------ Build started: Project: Project Deka, Configuration: Release Win32 ------
1>Linking...
1>LINK : fatal error LNK1561: entry point must be defined
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 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Share this post


Link to post
Share on other sites
Well I'm not sure what other differences there may be between your project setup and mine. I suppose just keeping the project settings the way they were would be the best since you said you got it to work. Sorry I wasn't much of a help.

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