Windows 7 또는 Vista에서 원활하게 실행되는 내 응용 프로그램 (C++, Mingw으로 컴파일, 주로 wxWidgets, Boost 및 SFML 사용)이 Windows XP에서 제대로 작동하지 않습니다. SP3.응용 프로그램이 XP SP3 및 comctl32 관련 매니페스트로로드되지 않습니다.
<?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>
내가 매니페스트 파일의 이름을 변경/제거하면, 나는 윈도우 XP SP3와 실행 파일을 실행할 수 있습니다 (: 나는 실행 파일이 윈도우 XP/Vista/7 look'n'feel 사용할 수있는 별도로 .manifest 파일이 하지만 추악한 구식 컨트롤 포함). 내가 매니 페스트 파일을 보자면 Vista/7에서는 문제없이 실행되지만 Windows XP SP3에서는 응용 프로그램이 메모리에로드되지만 (작업 관리자에서 볼 수는 있지만) 아무 것도하지 않습니다. 오류 메시지가 없으며 충돌도 발생하지 않습니다.
콘솔을 표시하도록 콘솔을 다시 컴파일하면 콘솔에 아무 것도 표시되지 않습니다.
gdb를 사용하여 디버깅하는 경우 디버거가 "Starting program : ..."을 표시하고 차단됩니다 (Control + C가 작동하지 않음).
실행 파일에 종속성 워커를 사용하려고했습니다. http://pastebin.com/J6T8KBH8
:
여기 는 매니페스트 파일과 로그입니다 (여기에 매니페스트없이 로그입니다. http://pastebin.com/zrYzRaWE가 /이 경우, 응용 프로그램이 문제없이로드 여전히 로그의 끝에서 실행이)
Dependency Walker에서 빨간색으로 표시된 행을 강조 표시했습니다.이 행은 comctl32에서 누락 된 프로 시저를 나타냅니다. 또한 로그는 특정 오류없이 중단 된 것 같습니다.
매니페스트를 사용할 때 응용 프로그램이 중단되거나 메시지가 표시되지 않고 중단 된 것처럼 보이는 이유는 무엇입니까?