Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden von
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
inlinedeklariert werden. - Sie kann nicht als
staticdeklariert 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