WinMain-Funktion (winbase.h)
Der vom Benutzer bereitgestellte Einstiegspunkt für eine grafische Windows-basierte Anwendung.
WinMain- ist der herkömmliche Name, der für den Einstiegspunkt der Anwendung verwendet wird. Weitere Informationen finden Sie in den Hinweisen.
Syntax
int __clrcall WinMain(
[in] HINSTANCE hInstance,
[in, optional] HINSTANCE hPrevInstance,
[in] LPSTR lpCmdLine,
[in] int nShowCmd
);
Parameter
[in] hInstance
Typ: HINSTANCE-
Ein Handle zur aktuellen Instanz der Anwendung.
[in, optional] hPrevInstance
Typ: HINSTANCE-
Ein Handle für die vorherige Instanz der Anwendung. Dieser Parameter ist immer NULL-. Wenn Sie ermitteln müssen, ob bereits eine andere Instanz vorhanden ist, erstellen Sie einen eindeutig benannten Mutex mithilfe der CreateMutex--Funktion. CreateMutex wird auch dann erfolgreich ausgeführt, wenn der Mutex bereits vorhanden ist, aber die Funktion gibt ERROR_ALREADY_EXISTSzurück. Dies weist darauf hin, dass eine andere Instanz Ihrer Anwendung vorhanden ist, da sie zuerst den Mutex erstellt hat. Ein böswilliger Benutzer kann diesen Mutex jedoch erstellen, bevor Sie die Anwendung starten und verhindern. Um diese Situation zu verhindern, erstellen Sie einen zufällig benannten Mutex, und speichern Sie den Namen so, dass er nur von einem autorisierten Benutzer abgerufen werden kann. Alternativ können Sie eine Datei für diesen Zweck verwenden. Um Ihre Anwendung auf eine Instanz pro Benutzer zu beschränken, erstellen Sie eine gesperrte Datei im Profilverzeichnis des Benutzers.
[in] lpCmdLine
Typ: LPSTR-
Die Befehlszeile für die Anwendung, mit Ausnahme des Programmnamens. Um die gesamte Befehlszeile abzurufen, verwenden Sie die GetCommandLine--Funktion.
[in] nShowCmd
Typ: int
Steuert, wie das Fenster angezeigt werden soll. Dieser Parameter kann ein beliebiger Wert sein, der im nCmdShow Parameter für die ShowWindow--Funktion angegeben werden kann.
Rückgabewert
Typ: int
Wenn die Funktion erfolgreich ist, sollte das Beenden, wenn sie eine WM_QUIT Nachricht empfängt, den Ausgangswert zurückgeben, der im wParam--Parameter dieser Nachricht enthalten ist. Wenn die Funktion vor der Eingabe der Nachrichtenschleife beendet wird, sollte sie Null zurückgeben.
Bemerkungen
Der Name WinMain- wird von vielen Programmierframeworks verwendet. Je nach Programmierframework kann dem Aufruf der WinMain--Funktion vorangestellt werden, gefolgt von zusätzlichen Aktivitäten, die für dieses Framework spezifisch sind.
Ihre WinMain- sollte die Anwendung initialisieren, das Hauptfenster anzeigen und eine Nachrichtenabruf-und-Verteilerschleife eingeben, die die Struktur der obersten Ebene für die ausführung der Anwendung darstellt. Beenden Sie die Nachrichtenschleife, wenn sie eine WM_QUIT Nachricht empfängt. Zu diesem Zeitpunkt sollte ihre WinMain- die Anwendung beenden und den wert zurückgeben, der im WM_QUITwParam--Parameter der Nachricht übergeben wird. Wenn WM_QUIT als Ergebnis des Aufrufs PostQuitMessage-empfangen wurde, ist der Wert wParam- der Wert des PostQuitMessage-nExitCode--Parameters der Funktion. Weitere Informationen finden Sie unter Erstellen einer Nachrichtenschleife.
ANSI-Anwendungen können den lpCmdLine- Parameter der WinMain--Funktion verwenden, um auf die Befehlszeilenzeichenfolge zuzugreifen, mit Ausnahme des Programmnamens. Beachten Sie, dass lpCmdLine- den LPSTR Datentyp anstelle des LPTSTR Datentyp verwendet. Dies bedeutet, dass WinMain- nicht von Unicode-Programmen verwendet werden kann. Die GetCommandLineW--Funktion kann verwendet werden, um die Befehlszeile als Unicode-Zeichenfolge abzurufen. Einige Programmierframeworks stellen möglicherweise einen alternativen Einstiegspunkt bereit, der eine Unicode-Befehlszeile bereitstellt. Beispielsweise verwendet der Microsoft Visual Studio C++-Konformer den Namen wWinMain- für den Unicode-Einstiegspunkt.
Beispiel
Das folgende Codebeispiel veranschaulicht die Verwendung von WinMain-
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, PSTR cmdline, int cmdshow)
{
return MessageBox(NULL, "hello, world", "caption", 0);
}
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winbase.h (enthalten Windows.h) |
Siehe auch
Konzeptionelle
andere Ressourcen
Referenz-