Skip to main content
GameDev.net gamedev.net
🔒 Locked

Infamous SDL runtime error

Started by Illasera Jan 7, 2009 at 2:36 AM 8 replies 1.3k views
Original Post
Illasera
Illasera
I am aware that you guys are tired from seen this topic in so many different variations. Well basically its the ""This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix the problem". Now here is the way i tried to resolve this issue, maybe you guys can point me where i went wrong. V - I tried different compilers for my code. V - I tried including other DLLs dependency walker asked me to. V - When i tried setting my code generation to mt (multi threaded), i got Linking errors (multi defined symbols linking), When i tried ignoring the library that defined them with SDL library(LIBCMT.lib), i got unresolved symbols linking error. 1.)My code is generated via md (multi threaded dll), also tried mt (multi threaded, didnt worked as i mentioned earlier). 2.)build mode is set to Release. 3.)SDLMain and SDL libs included (no other resources used). 4.) All DLLs that dependency walker asked are in the working directory + the latest version of SDL. 5.) All testing pcs are admins (for these who claim its a privilege problem) Q1.)Are there any other ways to solve that (besides asking people i send them my applications to install packs)? Q2.)I noticed something about Recompiling the entire SDL library, can someone direct me to how to do so? i searched myself but couldn't find a resource explaining how to do so, Also i have no experience in how to compile libraries and dlls at all. Thanks in advance and sorry for any sign of ignorance :) Have a nice day. [Edited by - Illasera on January 7, 2009 9:28:10 AM]
phresnel
phresnel
Hi,

Quote:
cant remember the exact words but i bet that all of you know how it goes


unfortunately, I don't. Could you reproduce the error and post the exact message? Have you tried google with the exact message?
Illasera
Illasera
"This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix the problem"

and yea, i did tried google, guess he aint my friend.
Kwizatz
Kwizatz
If I am not mistaken that is an issue with the manifest embedding on your executable, usually it comes up in relation to the MS C library, try reinstalling the proper VC redistributable libraries or if anything else fails, an updated version of the Platform SDK.
phresnel
phresnel
Ah yes, now it makes click, but unfortunately I only remember that I fixed that once by providing all needed DLLs; sorry.

As for Question 2): There should be no need to recompile SDL, but probably there is a README in the sources. Also note that you could get into legal issues when your project's license is incompatible to LGPL, basically that is if your project is not open source. See
* click
* clack
Illasera
Illasera
Quote:
Original post by Kwizatz
If I am not mistaken that is an issue with the manifest embedding on your executable, usually it comes up in relation to the MS C library, try reinstalling the proper VC redistributable libraries or if anything else fails, an updated version of the Platform SDK.


I am sorry if i dont get you right, Do you mean to Purify MSVC?

Sort of like reinstalling msvc and only use the current latest libraries?

Also
Quote:
Original post by phresnel
Ah yes, now it makes click, but unfortunately I only remember that I fixed that once by providing all needed DLLs; sorry.


So did i on the tested standard pc and checked with dependency, all DLL`s supplied but still same issue.

[Edited by - Illasera on January 7, 2009 10:52:37 AM]
SiCrane
SiCrane
Depending on your compiler you may need to do extra steps to properly deploy your application. For example, with MSVC 2008, in order to load the CRT libraries, you need to have an application manifest in your executable. Otherwise, the CRT DLL won't start up properly. However, if you apply that manifest, you should also make sure that the CRT is deployed properly, preferably by running the MSVC 2008 redistributable package installer or the application won't start properly.
Kwizatz
Kwizatz
Quote:
Original post by Illasera
I am sorry if i dont get you right, Do you mean to Purify MSVC?

Sort of like reinstalling msvc and only use the current latest libraries?


Not necessarily reinstalling Visual Studio but make sure your executable is using the latest dlls and they are placed in the right places, IIRC the msvcr90.dll or msvcr80.dll expect to be located in a specific directory as for their manifests, so if there are any other copies on the way, either remove them, or take their path out the PATH environment variable.

I meant installing the VC redistributable packages (2005 2008), though that should be only necessary for machines not having VS installed where you want to run the program.

Also I mentioned Platform SDK which is basically an update to the headers and libraries shipped with Visual Studio.
Illasera
Illasera
Yep, you did it :) You helped me , thank you very much, although i managed to fix before reading your last reply :)

Now i want to help, i hope this Does help,

I copied the entire Redist DLL`s files to my projet :

Path : C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT

Files :

msvcp90.dll
Microsoft.VC90.CRT.manifest
msvcm90.dll
msvcr90.dll

And then i started playing the File Elimination game, As for i knew since it was a release version that a required file was (msvcr90.dll), It seems to be that "Microsoft.VC90.CRT.manifest" was also required and that what seems to be causing the problem.

Now a question if i may.

In my "Project" the option of Generate manifest was active, Doesnt generate the mainfast code into the executable file?

Thank you all for your help ( phresnel & Kwizatz & SiCrane), and i hope this info will also help future generation :) or the next person who will heve this problem :)
Kwizatz
Kwizatz
Quote:
Original post by Illasera
In my "Project" the option of Generate manifest was active, Doesnt generate the mainfast code into the executable file?


Yes, it is supposed to, but the manifest may limit the places from which a dll is loaded, so if it says it should be in C:\Windows\System32, but it is picking it from C:\RandomApp\Dlls for example, the runtime linker will pick that up as an error and refuse to run the executable.

Oh, and you're welcome [smile].

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.