Pregunta

He leído algunos artículos sobre diferentes pooints entrada de Windows C, wmain y WinMain.

Por lo tanto, si estoy en lo correcto, éstos se añaden a los compiladores de lenguaje C para el sistema operativo Windows. Pero, ¿cómo se implementan?

Por ejemplo, se pone wmain Unicode como argv [], pero su sistema operativo que envía estos argumentos al programa, por lo que no es cualquier campo especial en la entrada del archivo .exe que dice a las ventanas para pasar arguemnts como Unicode? Gracias.

¿Fue útil?

Solución

Las versiones modernas de Windows utilizan internamente UTF-16. Por lo tanto, cuando se inicia un archivo ejecutable, todos los argumentos de línea de comandos probablemente se pasan como UTF-16 desde el inicio, y la biblioteca de tiempo de ejecución vinculados a la aplicación iniciada o bien pasa los argumentos indemne (si se utiliza wmain) o convertidos a la codificación local automáticamente (si se utiliza main). (Específicamente esto se haría por wmainCRTStartup / mainCRTStartup que son los puntos de entrada reales utilizados para aplicaciones de consola de Windows.)

Otros consejos

En primer lugar: una diatriba pedante: wmain ciertamente no recibe argumentos Unicode. Unicode se define independientemente de cualquier codificación particular. wmain recibe argumentos en una codificación de caracteres Unicode de 16 bits, UTF-16 a una conjetura. Yo sólo he comprobado la documentación de Microsoft sobre wmain y los enlaces de la misma y está claro que Microsoft no tenía idea de lo que es Unicode cuando escribieron a él.

De todos modos, el punto de entrada de un programa se define por el enlazador. Un programa en C tiene siempre una cierta cantidad de código que se ejecuta antes prólogo principal / wmain / WinMain / wWinMain. Si se utiliza una de las amplias versiones de principal, el código de prólogo convierte los caracteres en el entorno de cualquier conjunto de caracteres que se encuentran en la versión de caracteres anchos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top