Estoy jugando con OpenGL, uso SDL para manejar la ventana/entrada, etc. Actualmente estoy mostrando la información que deseo ver a un HUD. Bueno, esto se está volviendo demasiado engorroso, y me preguntaba si hay una manera simple de abrir una ventana de consola separada para informarme esta información. Todavía soy nuevo en C++ así que no me moleste si esto es obvio.Depuración de C++/SDL con la ventana de la consola
Respuesta
En el Enlazador -> Sistema en las propiedades de su proyecto, compruebe que el SubSistema sea "Consola (/ SUBSISTEMA: CONSOLA)". Eso hace que aparezca una ventana de consola separada cuando ejecuta su programa. Si su punto de entrada actual no es main
, entonces tendrá que cambiarlo si lo hace.
Si está ejecutando desde una línea de comandos y usa printf()
, debería ver los mensajes desconectados en la ventana de su terminal. De lo contrario, podría iniciar sesión en un archivo y usar tail -f
en cuadros de estilo * nix para ver el resultado tal como aparece.
¿Qué entorno estás usando? La mayoría de los IDE también mostrarán este resultado en sus ventanas de salida de depuración.
¿Cómo realmente crearía esta ventana de consola? Actualmente estoy trabajando con una ventana generada por SDL. – grep
¿En qué plataforma estás trabajando? Si se trata de Windows, simplemente ejecute cmd.exe y ejecute su programa desde allí, en una Mac use Terminal o en Linux cualquier terminal que elija. –
El siguiente código es para Windows. Siempre me parece muy útil para mantener en torno a la posibilidad de crear una ventana de consola en la demanda:
int hConHandle;
intptr_t lStdHandle;
CONSOLE_SCREEN_BUFFER_INFO coninfo;
FILE *fp;
// allocate a console for this app
AllocConsole();
// set the screen buffer to be big enough to let us scroll text
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
coninfo.dwSize.Y = 500;
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
// redirect unbuffered STDOUT to the console
lStdHandle = (intptr_t)GetStdHandle(STD_OUTPUT_HANDLE);
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
fp = _fdopen(hConHandle, "w");
*stdout = *fp;
setvbuf(stdout, NULL, _IONBF, 0);
// redirect unbuffered STDIN to the console
lStdHandle = (intptr_t)GetStdHandle(STD_INPUT_HANDLE);
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
fp = _fdopen(hConHandle, "r");
*stdin = *fp;
setvbuf(stdin, NULL, _IONBF, 0);
// redirect unbuffered STDERR to the console
lStdHandle = (intptr_t)GetStdHandle(STD_ERROR_HANDLE);
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
fp = _fdopen(hConHandle, "w");
*stderr = *fp;
setvbuf(stderr, NULL, _IONBF, 0);
// make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog point to console as well
std::ios::sync_with_stdio();
//Keep our window in focus
SetForegroundWindow(m_hWnd); // Slightly Higher Priority
SetFocus(m_hWnd); // Sets Keyboard Focus To The Window
Este código asume que la HWND
está en una variable llamada m_hWnd
; está copiado de un contenedor de clase que uso. Sin embargo, la forma de obtener el HWND
de SDL depende de usted.
Para liberar la consola, llamar a esto:
FreeConsole();
AllocConsole
y FreeConsole
son funciones de la API de Win32.
- 1. redirige la consola a la ventana de salida de depuración de Visual Studio en app.config
- 2. ventana de la consola AJAX con la ayuda ANSI/VT100?
- 3. actualiza la ventana de la consola con java
- 4. Ocultar la ventana de la consola con Tkinter y cx_Freeze
- 5. Ocultando la ventana de la consola de la aplicación Python GUI con py2exe
- 6. Deshabilitar la segunda consola vacía etiquetada [Consola de depuración] al iniciar un objetivo de depuración
- 7. ocultar la ventana de la consola de un programa C
- 8. Título de la ventana de la consola c
- 9. GCC/C ¿cómo ocultar la ventana de la consola?
- 10. ¿Quitar la ventana de la consola para Glut/FreeGlut/GLFW?
- 11. ¿Cómo borrar toda la ventana de la consola?
- 12. Salida de información de depuración en la consola
- 13. depuración multiproceso desde la ventana inmediata
- 14. ¿Cómo abrir la ventana de la consola en Eclipse?
- 15. Desactivar la ventana de la consola que muestra
- 16. Ocultar la ventana de la consola desde Process.Start C#
- 17. Cómo usar la consola interactiva Eclipse en la depuración
- 18. Mostrar/Ocultar la ventana de la consola de una aplicación de consola C#
- 19. ¿Dónde puedo encontrar la salida de consola o depuración del código ejecutado en la ventana del administrador de paquetes?
- 20. ¿Resultado de la captura de la consola para la depuración en VS?
- 21. ¿La consola de depuración iOS 6 ya no está?
- 22. Ejecutar instrumentos y la consola de depuración simultáneamente
- 23. Ocultar ventana de la consola en la aplicación de consola C#
- 24. Depuración de OpenGL o información detallada en la consola
- 25. programación de Win32 ventana de la consola ocultar
- 26. Ventana de vigilancia para la depuración de XCode
- 27. Eclipse CDT La consola de depuración no muestra la salida del programa
- 28. ¿Cómo puedo ocultar la ventana de la consola al congelar aplicaciones wxPython con cxFreeze?
- 29. Xcode 4 - separar la ventana de consola/registro
- 30. Mongo Shell - Consola/registro de depuración
¿Cómo se aplica esto si, por ejemplo, codigo mi aplicación en un editor de texto y luego creo un ejecutable a través de Cmake? – Speldosa
@Speldosa: debe encontrar la opción CMake que le permite pasar indicadores del enlazador, y luego pasar "/ SUBSYSTEM: CONSOLE" al enlazador. –
set_target_properties (youapplication PROPERTIES LINK_FLAGS "/ SUBSYSTEM: CONSOLE") o hazlo: set (CMAKE_EXE_LINKER_FLAGS "/ SUBSYSTEM: CONSOLE") como configuración global. –