Hey - sorry if this is the wrong place for this.

I have this basic chess game I'm making, and I'm done with the first alpha build of it. It works fine when I compile it on my own computer, but when I bring the exe to a different computer, I get this error:

This application has failed to start becuase the application configuration is incorrect. Reinstalling the application may fix this problem.

Does anyone know how to fix this? I have the proper images in the same folder as the application. If anyone wants to try it for themselves: http://www.mediafire.com/?mgzmb3y94ty.

The program uses DirectX9. To my knowlege the computers I ran them on had DirectX, and even if they didn't, I'm under the impression that the program would at least run and give some sort of error once it gets to the DirectX code, not just refuse to run.

The computer that gets that error is missing one or more DLLs that are needed by the program. Make sure the program has been compiled for release mode instead of debug mode.

How do you do that in VC++ 08? Does that solve the DLL problem, or is that still the fault of the computer? Does that mean that the computer is missing the DirectX SDK?

>>How do you do that in VC++ 08?
On my computer which has the default installation, just under the Help menu at the top is a combo box that you can set to either Debug or Release. Make sure its set to Release when you compile the program.

>> Does that solve the DLL problem
Not necessarily. There may be other DLLs that are not installed on the other computer

>>or is that still the fault of the computer
No -- its your fault for failing to install the proper DLLs.

>>Does that mean that the computer is missing the DirectX SDK?
Not the SDK but there are probably some redistributable DLLs. Look in the Microsoft DirectX SDK folder under Program Files and find a folder Developer Runtime. Those might be the DLLs you need to install with your program. Just copy them into the same folder where you installed your program.

Um, what exactly does compiling it as release change, because I get linker errors when I do that. (debug is fine)

Um, what exactly does compiling it as release change

The release version of your program requires a different set of .dlls to be present on the target system.
What linker errors are you receiving?

The release version of your program requires a different set of .dlls to be present on the target system.
What linker errors are you receiving?

here's the log:

------ Build started: Project: Chess_2D, Configuration: Release Win32 ------
Linking...
dxgraphics.obj : error LNK2001: unresolved external symbol _D3DXCreateTextureFromFileExA@56
dxgraphics.obj : error LNK2001: unresolved external symbol _D3DXGetImageInfoFromFileA@8
dxgraphics.obj : error LNK2001: unresolved external symbol _D3DXLoadSurfaceFromFileA@32
dxgraphics.obj : error LNK2001: unresolved external symbol _Direct3DCreate9@4
dxinput.obj : error LNK2001: unresolved external symbol _GUID_SysMouse
dxinput.obj : error LNK2001: unresolved external symbol _c_dfDIMouse
dxinput.obj : error LNK2001: unresolved external symbol _DirectInput8Create@20
dxinput.obj : error LNK2001: unresolved external symbol _IID_IDirectInput8A
game.obj : error LNK2001: unresolved external symbol _D3DXCreateSprite@8
game.obj : error LNK2001: unresolved external symbol _D3DXCreateFontA@48
C:\Documents and Settings\Alec_2\Desktop\3D Chess Project\Chess_2D\Release\Chess_2D.exe : fatal error LNK1120: 10 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Alec_2\Desktop\3D Chess Project\Chess_2D\Chess_2D\Release\BuildLog.htm"
Chess_2D - 11 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

>>Um, what exactly does compiling it as release change
I don't know exactly, but the debug version doubles the size of the executable because of all the stuff the compiler adds to make debugging easier, such as symbol names and line numbers and padding of data objects to make them bigger than you specified. The final release version of the program strips all that stuff out as well as optimizes code by changing some of it to make it run faster.

You have to tell the compiler the names of the DirectX *.lib files it is to use to link the program -- debug and release must be set up individually. When you set up the debug version you must have selected menu Project --> Properties --> Configuration Properties --> Linker --> Input then on the right side "Additional Dependencies" and listed the DirectX libraries there. You need to do the same thing for the release version. See the "Configuration" dropdown at the top of the left-hand pain.

Allright, now it compiles, but I asked my friend to run it and now he gets this message:

applicatin failed to start because its side by side configuration is incorrect. please see the application event log for more detail

What does that mean?

Allright, now it compiles, but I asked my friend to run it and now he gets this message:

applicatin failed to start because its side by side configuration is incorrect. please see the application event log for more detail

What does that mean?

I'm not sure, but the event viewer (eventvwr.exe) Application log may contain more detailed information about the error (i.e. even the name(s) of the missing file(s), if any). So you may want to look into there.

It may be that installing the VS 2005 runtime components onto the offending machine solves this problem. These components are available at
http://www.microsoft.com/downloads/details.aspx?familyid=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=en

Hey - thanks a bunch. I was using VC++ -8 so i used that redistributable package. It works now (I added one more DLL and then it worked). I currently just have the install file for the restributable files in the zip. Is there anyway to include the actual files in the zip, so that they don't have to install it? Or is there a way to just have one installer that does everything for you?

This article has been dead for over six months. Start a new discussion instead.