ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
3839
3839
EMPFEHLEN
-
Hallo,
Ich habe ein Problem, meinem Projekt ein Windows XP look zu verpassen. Ich habe schon jedes erdenkliche Tutorial gelsen wie z.B.
Verwenden von Visual styles
Using Windows XP Visual Styles
Manifest Dependencies in Visual Studio 2005
usw.
Jedoch funktioniert kein einziges!
Ich habe auch diese Methode probiert (ohne Erfolg):
Code cpp:1 2 3 4 5
#include <commctrl.h> #pragma comment(lib,"Comctl32.lib") //... InitCommonControls(); //..
In einem Forum hatte ich mal eine einfaches Tutroial gelsen wie man ein Manifest zum Projekt hinzufügt. Dabei geht man so vor:
Ich erstelle ein Win32 (Anwendung) Projekt (Leer). Zum Projekt füge ich eine C++ Datei namens MessageBox.cpp ein. Die Datei beinhaltet folgenden Code:
Code cpp:1 2 3 4 5 6 7 8 9
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox (NULL, TEXT("Hello, WinAPI!"), TEXT("HelloMsg"), MB_OK | MB_ICONQUESTION | MB_HELP); return 0; }
Wie Ihr sicherlich schon erkennt, will ich nur einen stinknormale MSG Box ausgeben. Wenn ich jetzt Debugge kommt die gewünschte MSG Box jedoch im alten Windows look. Um jetzt zu versuchen den look in Windows XP zu bekommen gehe ich wie folgt vor.
Ich erstelle im Projekt ordner eine XML Datei die ich einfach mal xpstyle.xml nenne. In der Datei steht folgendes:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
Nun gehe ich wieder in Visual Studio, und unter Projekt -> Eigenschaften (ALT + F7) öffnet sich das Fenster für Projekteigenschaften. Hier wähle ich dann:
Konfigurationseigenschaften -> Manifesttool -> Eingabe und Ausgabe -> Zusätzliche Manifestdateien aus und füge dort meine xpstyle.xml Datei zu.
So das sollte ja eigentlich reichen, richtig? Visual Studio hat ja jetzt die xpstyle.xml Datei als Manifest eingebettet.
Demnach geh ich jetzt einfach wieder auf Debuggen und hoffe das es Funktioniert.
Visual Studio blinkt kurz auf und gibt mir keine MSG Box aus aber auch keine Fehlermeldung.
Hier mal ein Auszug aus der Debug Ausgabe:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
"MessageBox.exe": "D:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\debug\MessageBox.exe" geladen, Symbole wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\ntdll.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\kernel32.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\user32.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\gdi32.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll" geladen, Symbole wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\msvcrt.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\imm32.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\advapi32.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\rpcrt4.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\uxtheme.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\MSCTF.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\version.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\version.dll" entladen. "MessageBox.exe": "D:\WINDOWS\system32\MSCTFIME.IME" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\ole32.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\system32\shlwapi.dll" geladen, Exporte wurden geladen. "MessageBox.exe": "D:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll" entladen. "MessageBox.exe": "D:\WINDOWS\system32\shlwapi.dll" entladen. Das Programm "[292] MessageBox.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
Da scheint alles ok zu sein oder?
Hier noch der Inhalt der BuildLog.htm Datei:
Hoffe einer von euch weiß Rat, den ich bin nämlich mit mein Latein am Ende -.-Buildprotokoll
Erstellen wurde gestartet: Projekt: "MessageBox", Konfiguration: "Debug|Win32"
Befehlszeilen
Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\RSP00000840163936.rsp" wird erstellt. Inhalt:
[
/out:".\debug\MessageBox.exe.embed.manifest" /notify_update /manifest ".\xpstyle.xml"
".\debug\MessageBox.exe.intermediate.manifest"
]Erstellen der Befehlszeile "mt.exe @"d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\RSP00000840163936.rsp" /nologo"Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\BAT00000940163936.bat" wird erstellt. Inhalt:
[
@echo, die Manifestressource wurde zuletzt um %TIME% am %DATE% aktualisiert > ".\debug\mt.dep"
]Erstellen der Befehlszeile """d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\BAT00000940163936.bat"""Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\TMP00000A40163936.tmp" wird erstellt. Inhalt:
[
1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ ".\\Debug\\MessageBox.exe.embed.manifest"
]Erstellen der Befehlszeile "rc.exe /fo".\Debug\MessageBox.exe.embed.manifest.res" "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\TMP00000A40163936.tmp""
Die temporäre Datei "d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\RSP00000B40163936.rsp" wird erstellt. Inhalt:
[
/OUT:"D:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\Debug\MessageBox.exe" /INCREMENTAL /MANIFEST /MANIFESTFILE:"Debug\MessageBox.exe.intermediate.manifest" /DEBUG /PDB:"d:\dokumente und einstellungen\ise3u\eigene dateien\visual studio 2005\projects\messagebox\debug\MessageBox.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
".\debug\MessageBox.obj"
".\Debug\MessageBox.exe.embed.manifest.res"
]Erstellen der Befehlszeile "link.exe @"d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\RSP00000B40163936.rsp" /NOLOGO /ERRORREPORT:PROMPT"
Ausgabefenster
Das Manifest wird eingebettet...
Ergebnisse
Das Buildprotokoll wurde unter "file://d:\Dokumente und Einstellungen\iSe3U\Eigene Dateien\Visual Studio 2005\Projects\MessageBox\MessageBox\Debug\BuildLog.htm" gespeichert.
MessageBox - 0 Fehler, 0 Warnung(en)
Hier noch zur Information, ich habe mir das SP2 für Visual Studio runtergeladen.
Ich denke das mir irgendeine Datei fehlt bei einem Freund klappt es beispielsweise einfach so das er folgende zeilen an den Präprozessor gibt:
Code cpp:1 2 3 4 5 6 7 8 9 10 11
#ifdef _UNICODE #if defined _M_IX86 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_IA64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_X64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") #else #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") #endif #endif
Bei dem Code Passiert das gleiche als wenn ich eine XML Datei als Manifest einbette, nämlich garnichts!
Habe Windows XP Prof als Betriebssystem.
Gruß FunjoyIch bin ein KLEINER Webmaster werde aber immer GRÖßER
Ähnliche Themen
-
[C++\WinAPI] Fenster in einer Klasse erstellen funktioniert nicht
Von Ninjasturm im Forum C/C++Antworten: 3Letzter Beitrag: 17.12.10, 23:12 -
[WinApi - WININET] FtpGetFile() funktioniert nicht - FTP-Verbindung besteht jedoch
Von radazong im Forum C/C++Antworten: 4Letzter Beitrag: 10.08.09, 18:42 -
Style abfragen funktioniert nicht?
Von DataFox im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 20.09.08, 22:12 -
Style funktioniert nicht bei Verlinkung
Von rundes kipfal im Forum CSSAntworten: 2Letzter Beitrag: 20.08.06, 21:36 -
This.class bzw. this.style funktioniert nicht!
Von Hankman im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 27.05.05, 12:29





Zitieren
Login






