windows - para - sintaxis de comandos cmd
Cómo escribir en la consola en una aplicación GUI (4)
Antecedentes: desarrollamos aplicaciones win32 y utilizamos el "kit de herramientas de Thompson" en Windows para darnos un shell unix que usamos como nuestra línea de comandos.
Tenemos un programa de GUI (con un bucle de WinMain y mensaje) que queremos escribir en la consola, pero printf y demás no funcionan, incluso cuando lanzamos el programa desde la consola. ¿Cómo podemos escribir en la consola desde un programa GUI? Necesitamos imprimir texto allí para que un sistema de compilación automatizado pueda mostrar mensajes de error, y así sucesivamente.
Gracias.
En lugar de iniciar sesión en la consola, inicie sesión en un archivo y luego realice un seguimiento del archivo con una aplicación de interfaz gráfica independiente. Esto mantiene la consola despejada y le proporciona un registro más persistente de su registro, que ocasionalmente es extremadamente útil. Hay varias bibliotecas que harán la mayor parte de esto por ti, o puedes mantenerlo simple y solo hazlo tú mismo.
En resumen, debe adjuntar una consola. Para obtener detalles y un código listo para usar, consulte http://www.codeproject.com/KB/dialog/ConsoleAdapter.aspx .
en algún lugar de la Configuración del Proyecto de Visual Studio puede activar una consola, suponiendo que esté utilizando VS. (No puedo decir dónde porque actualmente no lo tengo)
Básicamente, debe crear una consola usted mismo con AllocConsole
, AttachConsole
. Después, debe obtener identificadores estándar con GetStdHandle
y "asocia un descriptor de archivo en tiempo de ejecución C con un manejador de archivos del sistema operativo existente" con la ayuda de _open_osfhandle
.
El asa devuelta se puede utilizar para sobrescribir crt stdin
y stdout
. Después de eso, todos los métodos crt como printf
deberían funcionar.