My application ( C++, compiled with Mingw, using mainly wxWidgets, Boost and SFML ), which runs smoothly on Windows 7 or Vista, does not work properly on Windows XP SP3. I have a .manifest file which allows the executable to use Windows XP/Vista/7 look'n'feel:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
name="Game Develop Editor.Release - Edittime.App"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>Executable</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
If I remove/rename the manifest file, I can launch the executable with Windows XP SP3 ( But with ugly outdated controls ). If I let the manifest file, it run without problems with Vista/7 but with Windows XP SP3, the application is loaded in memory ( I can see it in task manager ) but do nothing. No error message, it does not even crash.
If I recompile it to display a console, the latter does not show anything.
If I use gdb to debug it, the debugger display "Starting program:..." and is then blocked ( Control+C does not work ).
I tried to use Dependency Walker on the executable.
Here is the log with the manifest file: http://pastebin.com/J6T8KBH8
( Here is the log without the manifest: http://pastebin.com/zrYzRaWE / In this case, the application loaded without problems and is still running at the end of the log. )
I've highlighted the line which is displayed in red in Dependency Walker, which refers to a missing procedure in comctl32. Moreover, the log seems to be interrupted without specific errors.
Have you got any idea about why the application seems to be interrupted without even a crash or an message when using a manifest?