Application won't work on other computers
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]
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...
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...
You're supposed to include this redistributable package with your application. Usually it's run silently from within your own installer.
Visual C++ 2008 Runtime Redist x86
Visual C++ 2008 Runtime Redist x64
How to redistribute the Visual C++ Libraries with your application
Visual C++ 2008 Runtime Redist x64
How to redistribute the Visual C++ Libraries with your application
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).
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).
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 ==========
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.
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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement