Compartir a través de


Usar wmain

Específicos de Microsoft

En el modelo de programación de Unicode, puede definir una versión con caracteres anchos de la función main. Utilice wmain en lugar de main si desea escribir código portable conforme con el modelo de programación Unicode.

Al igual que con main, a la función wmain se le aplican varias restricciones que no se aplican a otras funciones de C. La función wmain:

  • No se puede declarar como inline.
  • No se puede declarar como static.
  • Su dirección no se puede tomar.
  • No se puede llamar desde un programa de un usuario.

Signatura de la función wmain

La función wmain no tiene una declaración porque está integrada en el lenguaje. Si la tuviera, la sintaxis de declaración de wmain tendría este aspecto:

int wmain( void );
int wmain( int argc, wchar_t *argv[ ] );
int wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] );

La función wmain se declara implícitamente mediante una de estas firmas. Puede usar cualquiera de estas firmas al definir la función wmain. A continuación, se pueden pasar al programa argumentos de caracteres anchos y, opcionalmente, un puntero a entorno de caracteres anchos. El compilador de Microsoft también permite a wmain tener un tipo de valor devuelto de void cuando no se devuelve ningún valor. Los parámetros argv y envp que wmain también se pueden definir como de tipo wchar_t**. Para obtener más información acerca de las descripciones de los argumentos, vea Descripción de argumentos.

El entorno de envp

Si el programa utiliza una función main, el entorno de caracteres multibyte lo crea la biblioteca en tiempo de ejecución durante el inicio del programa. Se crea una copia de caracteres anchos del entorno sólo si es necesario (por ejemplo, por una llamada a las funciones _wgetenv o _wputenv). En la primera llamada a _wputenv, o en la primera llamada a _wgetenv si ya existe un entorno MBCS, se crea un entorno correspondiente de cadena de caracteres anchos, y la variable global _wenviron, que es una versión con caracteres anchos de la variable global _environ, señala a dicho entorno. En este punto, existen dos copias del entorno (MBCS y Unicode) simultáneamente que el sistema operativo mantiene a lo largo de la vida del programa.

De forma similar, si el programa utiliza una función wmain, se crea un entorno de caracteres anchos durante el inicio del programa y la variable global _wenviron apunta a dicho entorno. En la primera llamada a _putenv o getenv se crea un entorno MBCS (ASCII) y la variable global _environ apunta a dicho entorno.

Para obtener más información sobre el entorno MBCS, vea Internacionalización.

FIN de Específicos de Microsoft

Consulte también

Función main y ejecución del programa