Verwenden von wmain
Microsoft-spezifisch
Im Unicode-Programmiermodell können Sie eine Breitzeichenversion der main
-Funktion definieren. Verwenden Sie wmain
anstelle von main
, wenn Sie portablen Code schreiben möchten, der dem Unicode-Programmiermodell entspricht.
Wie für main
gelten für die wmain
-Funktion einige Einschränkungen, die für andere C-Funktionen nicht gelten. Mit der Funktion wmain
werden folgende Aktionen ausgeführt:
- Sie kann nicht als
inline
deklariert werden. - Sie kann nicht als
static
deklariert werden. - Ihre Adresse kann nicht übernommen werden.
- Sie kann nicht aus Ihrem Programm aufgerufen werden.
Die Signatur der wmain
-Funktion
Die wmain
-Funktion muss nicht deklariert werden, da sie in die Sprache integriert ist. Wäre eine Deklaration erforderlich, würde die Deklarationssyntax für wmain
wie folgt aussehen:
int wmain( void );
int wmain( int argc, wchar_t *argv[ ] );
int wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] );
Die wmain
-Funktion wird implizit mithilfe einer dieser Signaturen deklariert. Sie können jede dieser Signaturen verwenden, wenn Sie Ihre wmain
-Funktion definieren. Sie können anschließend Breitzeichen-Argumente und optional einen Breitzeichen-Umgebungszeiger übergeben, der auf das Programm verweist. Der Microsoft-Compiler lässt außerdem zu, dass wmain
den Rückgabetyp void
hat, wenn kein Wert zurückgegeben wird. Die Parameter argv
undenvp
von wmain
können auch als Typ wchar_t**
definiert werden. Weitere Informationen zu den Argumenten finden Sie unter Argumentbeschreibung.
Die envp
-Umgebung
Wenn in einem Programm eine main
-Funktion verwendet wird, wird die Multibyte-Zeichenumgebung von der Laufzeitbibliothek beim Programmstart erstellt. Eine Breitzeichen-Kopie der Umgebung wird nur bei Bedarf erstellt (z. B. durch Aufruf der _wgetenv
-Funktion bzw. der _wputenv
-Funktion). Wenn bereits eine MBCS-Umgebung vorhanden ist, wird beim ersten Aufruf von _wputenv
oder beim ersten Aufruf von _wgetenv
eine entsprechende Breitzeichen-Zeichenfolgenumgebung erstellt. Auf diese Umgebung zeigt dann die globale Variable _wenviron
, die eine Breitzeichenversion der globalen Variablen _environ
ist. Zu diesem Zeitpunkt sind zwei Kopien der Umgebung (MBCS und Unicode) gleichzeitig vorhanden und werden während der Lebensdauer des Programms vom Betriebssystem verwaltet.
Wenn ein Programm eine wmain
-Funktion verwendet, wird beim Programmstart eine Breitzeichenumgebung erstellt, auf die die globale Variable _wenviron
verweist. Eine MBCS-Umgebung (ASCII) wird beim ersten Aufruf von _putenv
oder getenv
erstellt. Anschließend verweist die globale _environ
-Variable auf diese Umgebung.
Weitere Informationen zur MBCS-Umgebung finden Sie unter Internationalisierung.
Ende Microsoft-spezifisch