Uso di wmain
Specifico di Microsoft
Nel modello di programmazione Unicode è possibile definire una versione a caratteri wide della main
funzione. Usare wmain
invece di main
se si desidera scrivere codice portabile conforme al modello di programmazione Unicode.
Come main
, diverse restrizioni si applicano alla wmain
funzione che non si applica ad altre funzioni C. La funzione wmain
:
- Non è possibile dichiarare come
inline
. - Non è possibile dichiarare come
static
. - Non può avere il suo indirizzo preso.
- Non è possibile chiamare dal programma.
Firma della wmain
funzione
La wmain
funzione non ha una dichiarazione, perché è incorporata nel linguaggio. In tal caso, la sintassi della dichiarazione per wmain
sarà simile alla seguente:
int wmain( void );
int wmain( int argc, wchar_t *argv[ ] );
int wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] );
La wmain
funzione viene dichiarata in modo implicito usando una di queste firme. È possibile usare una di queste firme quando si definisce la wmain
funzione. È quindi possibile passare al programma argomenti a caratteri estesi e, se lo si desidera, un puntatore di ambiente a caratteri estesi. Il compilatore Microsoft consente inoltre di wmain
avere un tipo restituito di void
quando non viene restituito alcun valore. I argv
parametri e envp
da wmain
possono essere definiti anche come tipo wchar_t**
. Per altre informazioni sugli argomenti, vedere Descrizione dell'argomento.
Ambiente di envp
Se il programma usa una main
funzione, l'ambiente a caratteri multibyte viene creato dalla libreria di runtime all'avvio del programma. Una copia a caratteri estesi dell'ambiente viene creata solo quando è necessario, ad esempio tramite una chiamata alla funzione _wgetenv
o _wputenv
. Alla prima chiamata a _wputenv
o alla prima chiamata a _wgetenv
, se esiste già un ambiente MBCS, verrà creato un ambiente corrispondente per una stringa a caratteri "wide". All'ambiente farà quindi riferimento la variabile globale _wenviron
, una versione a caratteri "wide" della variabile globale _environ
. A questo punto esistono allo stesso tempo due copie dell'ambiente, MBCS e Unicode, che vengono conservate dal sistema operativo per tutta la durata del programma.
Analogamente, se il programma usa una wmain
funzione, viene creato un ambiente a caratteri wide all'avvio del programma e fa riferimento alla _wenviron
variabile globale. Alla prima chiamata a _putenv
o getenv
viene creato un ambiente MBCS (ASCII) a cui fa riferimento la variabile globale _environ
.
Per altre informazioni sull'ambiente MBCS, vedere Internazionalizzazione.
END Microsoft Specific
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per