Ich habe eine Lösung für VC6, aber ich bin nicht sicher, ob es in VS 2008 funktionieren wird.
(siehe auch dieser Artikel was die Ursache des Problems ist)
Hier ist ein Beispiel für eine einfache Manifestdatei, die ich zur Lösung dieses Problems verwendet habe:
Erstellen Sie die folgende XML-Datei,
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.YourApplication"
type="win32"
/>
<description>YourApplication</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
Fügen wir zunächst zwei Zeilen in die Datei resource.h ein. Kopieren Sie einfach die folgenden Zeilen und fügen Sie sie ein:
#define IDR_MANIFEST 1
#define RT_MANIFEST 24
Öffnen Sie nun die anwendungsspezifische Ressourcendatei. Sie befindet sich normalerweise im Verzeichnis res; die Standarderweiterung ist .rc2. Fügen Sie manuell die folgende Zeile hinzu:
// Add manually edited resources here...
IDR_MANIFEST RT_MANIFEST MOVEABLE PURE
"res\\ApplicationManifestXMLFile"
Ersetzen Sie ApplicationManifestXMLFile durch den tatsächlichen Dateinamen (die von Ihnen erstellte XML-Datei).