Last update: 20-November-2002
 

Einbinden von eigenen Icons in eVB Programme mit Hilfe von IconShip
 
 
Thanks a lot to Dwayne Lamb at Visualbyte for his excellent and patient support.

  

Voraussetzungen:

Um eigenen eVB Programmen ein individuelles Icon mitgeben zu können, gibt es das Tool IconShip von Visualbyte. Auf der Basis der von Microsoft publizierten Applikationsschrift zu eVB Icons (Q268309) , nimmt dieses Tool dem Anwender die mühsamen Einzelschritte ab.

Das Programm ist nicht kostenlos, aber die rund 20 Euro sind gut angelegt
und das Programm ist auf jeden Fall seinen Preis wert.
 
Normalerweise haben eVB Programm nur ein Default Icon. Eigene Icons
können nur über einen Trick der eVB Applikation zugeordnet werden.
IconShip basiert nun darauf, dass ein kurzes C++ Programm welches das
individuelle Icon enthält, zwischen dem aufrufenden Link und dem
eigentlichen eVB Programm geschaltet wird. Der Link auf dem PPC Desktop
der das gewünschte Icon darstellt, zeigt also dann eigentlich auf ein Hilfsprogramm, das seinerseits erst das eigentliche eVB Programm zur Ausführung aufruft. Dieses C++ Hilfsprogramm wird Launcher oder Wrapper genannt.
 
Hier sollen nun die notwendigen Schritte im Detail aufgeführt werden , um eigene Icons mit Hilfe von IconShip einbinden zu können. Es soll als
Hilfestellung für Einsteiger in die PPC Programmentwicklung verstanden
sein.

Voraussetzungen:

Vorausgesetzt wird natürlich, dass neben eine IConShip Lizenz auch das kostenlose Microsoft Entwicklungs Tool eVB und eVC vorhanden und
installiert ist. Ebenfalls muß ein gewünsches Icon im Format 32*32 Bp
mit z.B. 256 Farben vorliegen.

Damit die Anweisung nicht zu abstrakt ist, wird anhand eines konkreten
Beispiels die Vorgehenswiese erläutert. Das Beispielprogramm heisst
MaidenheadCE . Das Ergebnis ist auf der Homepage des Verfassers zu finden.
 
1. Schritt : Installation von IconShip
 
Die Installation von Icon Ship ist problemlos möglich und enthält keine
Schwierigkeiten.
 
Bedingt durch länderspezifische Eigenheiten von WindowsCE, ist jedoch
eine Änderung in der Datei
Locker.ini durchzuführen.
 
Die Datei findet man im Installationsverzeichnis von IConShip. Damit der Link zum Aufruf des Wrappers nach der Installation auf dem PPC im richtigen Verzeichnis landet (in deutsch sprachigen Versionen normalerweise im Verszeichnis \Windows\Programme ), muß der Eintrag nach [NewStrings] auf
[NewStrings]
DDir=,%CE11%
 
geändert werden.
 
2. Schritt: Aufruf von IconShip und Erzeugung des Wrapper C++ Quelltextes
 
Das Erzeugen des Quelltextes des C++ Programm ist denkbar einfach. Man muss dazu keinerlei C++ Kenntnisse haben.

Nach dem Aufruf von IconShip ist unter Punkt 2 das nötige Programm
bereits geschrieben. Das einizge was noch fehlt ist die Anpassung an das
aktuelle eigene eVB Programm.
 
 
Oben rechts sind dazu die Namen des eVB Programms (hier Maidenhead.vb) und der Name des Hilfprogramms (hier MaidenheadCE.exe) anzugeben. Ganz wichtig ist, dass die Dateierweiterung .vb und .exe nicht mit eingegeben werden dürfen. Weiter äußerst wichtig ist, dass möglichst der gleiche Name für das .vb und das .exe File benutzt wird. Dies verhindert Probleme die im weiteren Verlauf der Erstellungsprozedur entstehen könnten.
Nun das ganze aktualisierte C++ Programm markieren und mit Copy (CNTRL-C) in die Zwischenablage kopieren.

 

3. Schritt : Erzeugung des C++ Hilfsprogramms (Wrappers)

 
Zum Erzeugen des Wrappers muß nun eVC gestartet werden. Zur Vereinfachung der Beschreibung der Vorgehensweise ist nach folgender stichpunktartiger Reihenfolge vorzugehen.
 
3.1.

Aus
FILE -> NEW anklicken und im erscheinenden Window WCE Application
anklicken. Recht oben in Project Name den gleichen Namen angeben (hier
MaidenheadCE) wie bei IconShip unter Punkt 2. Das ist dann der Name des Wrappers. In Location den Pfad angeben oder auswählen, in dem die Wrapperdateien abgeleget werden sollen. (hier ...\MaidenheadCE\C++)
Bei
CPUs den oder die gewünschten Prozessortypen auswählen auf denen
das Programm laufen soll. Jeder Prozessortyp benötigt einen eigenen Wrapper. Dann auf
OK klicken.
 
 
3.2

A simple Windows CE Application auswählen und Finish ausführen. Dann New Project Information mit OK bestätigen.
 
 
3.3

Nun muss die gewünschte Plattform in der Kopfezeile ausgewählt werden.
Hier
PocketPC, WIN32(WCE ARM) Release, PocketPC (Default Device).
Dann das in
ClassView auf MaidenheadCE classes doppelklicken, dann
Globals doppelkicken und dann WinMain(HInsta...) doppelklicken. Es
erscheint dann eine
WINAPI WinMain(...) Funktion. Diese Defaultfunktion wird jetzt komplett durch den Wrapperquelltext, der sich in der Zwischenablage befindet, ersetzt. Dazu die Defaultfunktion komplett
löschen und mit Paste (CNTRL-V) den Wrapperquelltext ablegen.
 
Anklicken zum Vergrößern
 
3.4

Jetzt wird das gewünschte Icon eingebunden. Dazu in der Kopfzeile aus
INSERT -> Resouce... auswählen.
 
 
Nun auf IMPORT klicken und das gewünschte Icon suchen und auswählen.
 
 
Das gewünschte Icon suchen und anklicken.
 
 
Jetzt ist der Iconeditor geöffnet und das Icon ist sichtbar.
 
 
 
Bei eVB werden zwei Icons benötigt. Eines (bereits vorhanden) im Format 32*32 und eines (noch nicht vorhanden) im Format 16*16. Das kleinere Format ist ganz einfach aus dem größeren Format zu erzeugen.
Dazu den Button
New Device Image(Ins) der sich rechts neben dem Feld
befindet, in dem
32*32,256 color steht. Auf diesen Button klicken und
dann auf
SMALL(16*16) doppelklicken.
 
 
Ein leere 16*16 Icon ist nun erzeugt.
 

Dann mit Hilfe der Combobox wieder zurück auf 32*32 schalten. Das
importierte Icon ist wieder sichtbar. Jetzt in der Kopfzeile auf
EDIT ->
Copy
klicken um das Icon Image in die Zwischenablage zu legen.
 
 
Dann über die Combobox wieder zurück auf Small(16*16) schalten und mit
Edit -> Insert oder mit CNTRL V das Icon Image in die 16*16 Vorlage
einfügen.
 
 
Da das Icon natürlich zu groß ist, muß mit Hilfe der Maus die zu großen Umrisse auf die kleinere Vorlage geschoben werden. Dazu den Rand anklicken und nach innen schieben. Danach ist das Icon verkleinert.
Nach links auf Maidenhead resources * mit rechter Maustaste klicken
und
Save MaidenheadCE.rc ausführen zum Abspeichern der Icons.
 
 
3.5

Nun muss nur noch das Wrapper EXE File erzeugt werden. Dazu oben auf
Build -> Batch Build... auswählen.
 
 
Im nun erscheinenden Fenster den oder die zu unterstützenden Prozessoren auswählen. Die Debugversionen können abgewählt werden, dann Build betätigen.
 
 
Nicht durch das Pipsen des Programms irritieren lassen. Wichtig ist nur, dass im Messagefeld unten für alle Prozessoren - 0 error(s), 0 warning(s) erscheint. Damit sind die Wrapper erzeugt.
 
 
4. Schritt : Erzeugung der Installationsdateien der eVB Application.
 
Die Installationsdateien zunächst wie gewohnt mit dem eVB Application
Installation Wizard bis zum Punkt 7 erzeugen.
 
 
Im Punkt 7 wird nun eine Wrapperdatei in den Installationsdatensatz
eingebunden.
 
 
Dazu auf Add klicken und die Wrapperdatei (hier MaidenheadCE.exe) für den gewünschten Prozessor in ..\C++ suchen und anklicken (aus ARMRel,MIPSRel,SH3Rel).
 
 
Darauf achten, dass das Icon hier sichtbar ist. Nun wird gefragt, ob die gerade ausgewählte Datei eine Systemdatei ist. Die Frage mit NEIN beantworten. Da es sich zunächst nur um einen Platzhalter handelt, reicht die Angabe eines Wrappers. Später werden die eigentlichen Wrapperdateien mit Hilfe von ICONSHIP dem Installationssatz zugegeben.
Die Erzeugung weiter zu Ende führen.
 
5. Schritt: Entgültigen Installationsdatensatz erzeugen
 
Den Rest übernimmt nun IconShip. Man muss jetzt nur noch das eVB Distribution Package .INF File und für jedem Prozessor den spezifischen Wrapper auswählen. Dabei ist darauf zu achten , dass das richtige Wrapperfile (Icon muß sichtbar sein) gewählt wir. IconShip merkt sich den Pfad der Wrapperdateien, was beim Benutzen für ein anderes eVB Programm beachtet werden muß.
 

 
Letzte Aktion ist dann die Betätigung des Buttons Make Modification. Wichtig ist zum Schluss, dass man unten im IconShip Fenster keine rotmarkierte Fehlermeldung findet.
 
 
Damit ist die Einbindung des Icons in das eigene eVB Programm abgeschlossen.



Back to homepage

Top of this page