Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

11.08.2006, 18:59

"XP-Style" (Manifest-Datei)

Da ich schon öfters von Problemen mit dem "benutzen" der "XP-Styles" gehört hab, hab ich mir gedacht, das ich euch mal nen Tutorial dazu schreib wie man sowas macht.

Information
Da ich persönlich noch mit Visual Studio 2003 Professional arbeite, kann ich euch leider keine Bilder für die 2005er Version zeigen. Der Inhalt der Manifestdatei ändert sich dabei aber nicht.

Manifest-Datei
Öffnet den Editor oder einen Texteditor eurer Wahl.
Fügt folgenden Inhalt ein (Wobei ihr MYPROJECTNAME durch euern Projektnamen ersetzt und wenn ihr wollte auch eure Beschreibung einfügt):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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.MYPROJECTNAME"
    type="win32" 
/> 
<description>Hier fügt ihr eine Beschreibung für euer Projekt ein...</description> 
<dependency> 
    <dependentAssembly> 
        <assemblyIdentity 
            type="win32" 
            name="Microsoft.Windows.Common-Controls" 
            version="6.0.0.0" 
            processorArchitecture="X86" 
            publicKeyToken="6595b64144ccf1df" 
            language="*" 
        /> 
    </dependentAssembly> 
</dependency> 
</assembly>

Speichert diese Datei in euren Projektordner mit dem Namen(MYPROJECTNAME wieder ersetzen): "MYPROJECTNAME.exe.manifest".
(Beim Editor müsst ihr evt. " um den Dateinamen setzen, damit er auch die Endung übernimmt ...)

Visual C++ 6
Als erstes öffnet ihr entweder euer bestehendes Projekt, oder legt euch ein neues an, jenachdem wie ihr es braucht. Dann geht ihr in die "ResourceView". (Bild: Bild 01)

Von dort aus klickt ihr mit der rechten Maustaste auf "MYPROJECT Resourcen" (wobei MYPROJECT natürlich der name eures Projektes ist!). Es erscheint ein Menu: Bild02

Wir klicken auf "Import..." (D: "Importieren..."). Es erscheint folgender Dialog:
Bild03
Wir müssen erstmal ein paar Sachen in dem Dialog umstellen damit wir die gewünschte Datei sehen können. Diese wären:
- Dateitypen: All Files (*.*)
- Öffnen als: Custom
Nun müssen wir nur noch die Datei auswählen (die Manifest-Datei die ihr oben erstellt habt!) und auf "Import" klicken.

Es erscheint folgender Dialog: Bild04
Wie ihr seht hab ich bereits "RT_MANIFEST" eingetragen. Das müsst ihr auch machen. Jetzt noch ein klick auf "OK" und die Datei wird importiert.

Jetzt gebt ihr der Resource noch den Namen "1".

Damit eure Anwendungen jetzt auch noch funktionieren, müsst ihr noch die InitCommonControls Function am Anfang der WinMain aufrufen.


Visual C++ 2003 .NET
Als erstes öffnet ihr entweder euer bestehendes Projekt, oder legt euch ein neues an, jenachdem wie ihr es braucht. Dann geht ihr in die "ResourceView". (Bild: Bild 01)

Rechtsklick auf euren Projektnamen. Dann auf "Add Resource".(Bild: Bild02
Es erscheint folgendes Fenster: Bild03 ... Ihr klickt auf "Import".

Es erscheint folgender Dialog: Bild04
- Files of type: All Files(*.*)
Wählt die Manifest-Datei aus, die wir oben erstellt haben und klickt auf "Open".

Es folgt folgendes Fenster: Bild05 Wie ihr seht hab ich schon "RT_MANIFEST" eingetragen. Dies müsst ihr auch machen! Dann klickt einfach auf "OK".

Nun haben wir die Datei importiert. Ändert den Namen auf "1".

Jetzt würde eure Anwendung eine Fehlermeldung beim starten anzeigen. Um das zu verhindern müsst ihr noch die InitCommonControls Function am Anfang der WinMain aufrufen.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

2

11.08.2006, 19:06

Währe gut wenn es mal ein Tutorial geben würde wo das mit den Win32 API Funktionen gemacht würde ohne die Manifest-Datei. Denn so bedauerlich wie ich das sagen muß: Davon gibt es sogut wie gar keine - höchstens nur für Dialoganwendungen und Manifest-Tutorials gibt es leider wie Sand am Meer. :( :( :( :( :(

Aber das Tutorial ist wenn es um Manifest geht ganz gut, jedoch solltest Du sagen was die einzelnen Parameter in dieser Datei bedeuten und was für Auswirkunge sie haben - damit sich Dein Tutorial gegenüber den anderen deutlich hervorhebt und nicht wie ein 08/15 Tutorial aussieht.

Könntest Du dann auch irgendwann mal eines machen mit den Win32 API Funktionen? also der mit der <uxtheme.h> :roll:

3

11.08.2006, 19:26

So... mal kurz noch für die 2003er hinzugefügt... hmm... ja mal sehen... später mal ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

4

11.08.2006, 20:48

In VisualC++ 2005 geht es noch einfacher:
Die Obige Datei als .xml (z.B. XPStyle.xml) abspeichern und im Projektverzeichnis ablegen, Bei Projekteigenschaften->Manifesttool->Eingabe und Ausgabe->Zusätzliche Manifestdateien-> z.b. XPStyle eigeben (für Release und Debug) und compilieren :)

//Edit: Das mit den Win32 API Funktionen würde mich aber mal interessieren
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

5

11.08.2006, 21:52

Jaja... damit müsst ihr euch noch was gedulden...

@nix da... hmm schwebt dir ne Klasse vor Augen, die ich euch hier mal machen soll, mit der man dann seinen eigenen Controls XP Style verpassen kann? ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

6

11.08.2006, 21:55

Devil
Nee, kann man machen wie man will. Nur halt etwas das die Funktionen aus der <uxthemes.h> vorstellt und zeigt wie diese angewendet werden. .NET benutzt die z. B. und keine Manifest :roll:

7

23.08.2006, 17:11

Danke für das Tutorial. Bin mal auf die WinApi-Funktionen gespannt...

Casey20

Frischling

Beiträge: 72

Wohnort: Berlin

  • Private Nachricht senden

8

06.03.2007, 13:52

Was hat es denn mit dem public key token auf sich?
"Der weise Mann bildet sich sein eigenes Urteil"

Kane

9

06.03.2007, 19:09

http://www.google.com/search?hl=de&q=manifest++publicKeyToken&btnG=Suche&lr= ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Toa

Alter Hase

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

10

19.10.2007, 23:22

Kann jemand vielleicht auch ma son ein Tut für Code::Blocks schreiben :(
Mag Vs net so

Werbeanzeige