Einsprungsfunktion WinMain(...)

Die Funktion WinMain(...) ist die erste ausführbare Funktion innerhalb eines 'normalen' WINDOWS Programms.

WinMain(....) hat folgendes Prototyping:

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine, int nCmdShow);

Die Parameter haben folgende Bedeutung:

Parameter

Bedeutung

HINSTANCE hInstance Handle der aktuellen Instanz. Ist bei WIN32-Anwendungen immer deren Ladeadresse und besitzt den in der Regel den Wert 0x400000.
HINSTANCE hPrevInstance Handle der vorherigen Instanz der Anwendung. Bei WIN32-Anwendungen hat dieser Parameter immer den Wert 0.
LPSTR lpCmdLine Zeiger auf die Befehlszeile (als String) mit der die Anwendung gestartet wurde.
int nCmdShow Gibt an wie das Hauptfenster der Anwendung dargestellt werden soll.

Noch einige Anmerkungen zu den Parametern lpCmdLine und nCmdShow.

Sämtliche Kommandozeilen-Parameter werden unter WINDOWS in einem String übergeben und nicht wie bei 'normalen' C/C++ Programmen als getrennte Strings. Der String enthält unter WINDOWS auch nicht mehr den Namen des Programms, d.h. wenn Sie Ihre Anwendung wie folgt starten:

myprog param1 param2

so zeigt lpCmdLine auf die Zeichenfolge "param1 param2".

nCmdShow gibt an, wie das Fenster dargestellt werden soll. Dieser Parameter wird im weiteren Verlauf des Programms an eine API-Funktion übergeben die dafür sorgt, dass das Fenster letztendlich entsprechend dargestellt wird. Für nCmdShow sind u.a. folgende Konstanten definiert:

Konstante

Bedeutung

SW_HIDE Verbirgt das Fenster und aktiviert das nächste Fenster.
SW_MINIMIZE Verkleinert das Fenster zum Symbol.
SW_RESTORE Aktiviert das Fenster und zeigt es an. Falls das Fenster zum Symbol verkleinert wurde oder als Vollbild dargestellt ist, stellt WINDOWS die ursprüngliche Größe wieder her. Eine Anwendung sollte diesen Wert immer angeben wenn das Fenster aus dem minimierten Zustand geholt wird.
SW_SHOW Aktiviert nur das Fensters, verändert aber seine Größe und Position nicht.
SW_SHOWMAXIMIZED Aktiviert das Fenster und zeigt es als Vollbild an.
SW_SHOWMINIMIZED Aktiviert das Fenster und zeigt es als Symbol an.
SW_SHOWMINNOACTIVE Zeigt das Fenster als Symbol an. Das aktive Fenster bleibt aber aktiv.
SW_SHOWNA Zeigt das Fenster im aktuellen Zustand an. Das aktive Fenster bleibt aktiv.
SW_SHOWNOACTIVATE Zeigt das Fenster in seinem neuen Zustand (Größe und Position) an. Das aktive Fenster bleibt aktiv.
SW_SHOWNORMAL Aktiviert das Fenster und zeigt es an. Ist das Fenster verkleinert oder als Vollbild, wird es auf die Originalgröße gebracht.

Als Returnwert liefert die Funktion einen Wert vom Typ int WINAPI zurück. WINAPI ist ein Überbleibsel aus vergangenen 16-Bit Tagen und ist unter Win32 als leeres Symbol definiert so dass WinMain(...) letztendlich nur einen int-Wert zurückliefert. Dieser int-Wert wird aber zur Zeit von WINDOWS nicht weiter ausgewertet.



Copyright © 2004

Senden Sie Emails mit Fragen oder Kommentaren zu dieser Website an: mailto:info@cpp-tutor.de
 Wolfgang Schröder, Lerchenweg 23, D-72805 Lichtenstein. Tel: +49 7129 6470