Condividi tramite


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

main esecuzione di funzioni e programmi