2011-09-06 788 views

Respuesta

8

/SUBSYSTEM:CONSOLE) es para aplicaciones basadas en consola. Debe definir la función main en el código.

/SUBSYSTEM:WINDOWS) es para aplicaciones de GUI. Debe definir la función WinMain.

+7

SUBSYSTEM: WINDOWS no es necesariamente para aplicaciones de GUI. Solo para aplicaciones sin consola. Piensa en aplicaciones de servidor, servicios que se ejecutan sin cabeza. –

+2

Si se dirige a Windows XP desde la línea de comandos de MSVC 2013, es posible que necesite /SUBSYSTEM:WINDOWS.5.1 (o: CONSOLA, 5.1) –

2

/SUBSISTEMA: resultados de consola en un proceso con una consola y/subsistema es: qué Windows no.

6

CONSOLA: Se muestra la ventana de la consola. WINDOWS: el programa se inicia sin la ventana de la consola.

Editado, mirando otras respuestas. Observe que el indicador/SUBSYSTEM no afecta el punto de entrada del programa. El punto de entrada del programa se define mediante la opción del vinculador/ENTRY. Normalmente/SUBSISTEMA: CONSOLA tiene un punto de entrada "principal" y/SUBSISTEMA: WINDOWS tiene un punto de entrada "WinMain". Pero es posible, por ejemplo, crear una aplicación GUI con el punto de entrada WinMain y la ventana de la Consola.

3

Ver here. VS2008 automatiza algunas cosas para usted, lo que ha llevado a la confusión.

CONSOLA Win32 aplicación en modo texto. El sistema operativo proporciona una consola para aplicaciones de consola. Si main o wmain es definido para el código nativo, int main (matriz ^) se define para el código administrado , o construye la aplicación completamente usando /clr: safe, CONSOLA es el valor predeterminado.

WINDOWS La aplicación no requiere una consola, probablemente porque crea sus propias ventanas para la interacción con el usuario. Si WinMain o wWinMain se define para el código nativo, o WinMain (HISTANCE *, HINSTANCE *, char *, int) o wWinMain (HINSTANCE *, HINSTANCE *, wchar_t *, int) se define para el código administrado, VENTANAS es el predeterminado.