Incomodidad al ocultar consola

Iniciado por boy-ka, 27 Julio 2015, 12:37 PM

0 Miembros y 1 Visitante están viendo este tema.

boy-ka

Hola, tengo una duda que quizás muchas se la han planteado y tal vez la hayan resuelto, es la siguiente:

Yo oculto la consola en C++ con FreeConsole(); de la librería de Windows, bueno aquí dejo el código

Código (cpp) [Seleccionar]

#include <stdio.h>
#include <windows.h>

int main(){
 FreeConsole();
 getchar();
 return 0;
}



Esto está bien, la consola se me oculta. El problema es que la consola se nota cuando se abre, osea pestanea y me gustaría saber si hay una forma que desde que des doble click se ejecuta oculta y que no de ese pestanazo, osea se ve cuando sale la consola y se oculta, conocen alguna forma?

Gracias por adelantado.


**edito escribí el ultimo parrafo por error dentro de las líneas de codigo ¬¬ **

ivancea96

Si compilas con GCC, pásale el parámetro -mwindows.

Kaxperday

Código (cpp) [Seleccionar]

#pragma comment(linker, "/SUBSYSTEM:WINDOWS")
int WINAPI WinMain(_In_  HINSTANCE hInstance,_In_opt_  HINSTANCE hPrevInstance,_In_  LPSTR lpCmdLine,_In_  int nCmdShow){}


Con eso no te debería de aparecer ninguna consola, no hace falta entonces que llames a freeconsole();

Saludos.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

boy-ka

#3
Muchisimas gracias amigos :D!, lo probaré y dira como me fue!


Cita de: boy-ka en 28 Julio 2015, 02:16 AM
Hola!, mira lo he probado con el siguiente codigo:

Código (cpp) [Seleccionar]


#pragma comment(linker, "/SUBSYSTEM:WINDOWS")
#include <cstdlib>
#include <iostream>

using namespace std;

int main(_In_ HINSTANCE hInstance,_In_opt_  HINSTANCE hPrevInstance,_In_  LPSTR lpCmdLine,_In_  int nCmdShow)
{
   system("PAUSE");
   return EXIT_SUCCESS;
}


Me aparece error de que _In_ no ha sido declarado, bueno ahora te muestro el error

Código (cpp) [Seleccionar]

7 C:\Users\mi_usuario\Desktop\main.cpp `_In_' was not declared in this scope
7 C:\Users\mi_usuario\Desktop\main.cpp `_In_opt_' was not declared in this scope
7 C:\Users\mi_usuario\Desktop\main.cpp `_In_' was not declared in this scope
7 C:\Users\mi_usuario\Desktop\main.cpp `_In_' was not declared in this scope
8 C:\Users\mi_usuario\Desktop\main.cpp initializer expression list treated as compound expression
8 C:\Users\mi_usuario\Desktop\main.cpp expected `,' or `;' before '{' token
C:\Users\mi_usuario\Desktop\Makefile.win [Build Error]  [main.o] Error 1


Puedes ayudarme con esto?, a y por si acaso estoy utilizando el compilador DEV C++ versión 4.9.9.2, gracias.

**edito: cambio el nombre de mi equipo por mi_usuario **

Mod: no hagas doble post, usa e botón modificar... evita usar mayúsculas, hay muchas formas de resaltar un texto

joecarl

#4
Si usas DevC++ seguramene estes usando el compilador gcc de mingw. Asique haz lo que dice ivancea96: En las opciones de compilación añade el texto "-mwindows".

EDIT: los errores que obtienes con _In_ etc aparecen porque no has incluído windows.h, de todas formas insisto en que uses lo que dice ivancea96 ya que tendrás un codigo más portable.

PD: no deberías usar DevC++ ya que su desarrollo se frenó por completo hace bastante tiempo. Yo usaría Code::Blocks que es muy similar y su desarrollo aun persiste.

boy-ka

Cita de: joecarl en 28 Julio 2015, 08:55 AM
Si usas DevC++ seguramene estes usando el compilador gcc de mingw. Asique haz lo que dice ivancea96: En las opciones de compilación añade el texto "-mwindows".

EDIT: los errores que obtienes con _In_ etc aparecen porque no has incluído windows.h, de todas formas insisto en que uses lo que dice ivancea96 ya que tendrás un codigo más portable.

PD: no deberías usar DevC++ ya que su desarrollo se frenó por completo hace bastante tiempo. Yo usaría Code::Blocks que es muy similar y su desarrollo aun persiste.

Podrías por favor darme un ejemplo de cómo hacerlo?

joecarl


Pues mira, en DevC++ no sé, pero en Code::Blocks no hace falta nisiquiera usar nada de lo dicho anteriormente, simplemente vas a:

Project->Properties...->Build Targets->Type:
Y seleccionas "GUI Application" en el menu desplegable.

Y ya no hay mas consola que valga.

boy-ka

Cita de: joecarl en 28 Julio 2015, 12:47 PM
Pues mira, en DevC++ no sé, pero en Code::Blocks no hace falta nisiquiera usar nada de lo dicho anteriormente, simplemente vas a:

Project->Properties...->Build Targets->Type:
Y seleccionas "GUI Application" en el menu desplegable.

Y ya no hay mas consola que valga.


Gracias ahora me cambio a codeblocks, pero, ya veldría saliendo oculta la aplicación?
disculpa por las preguntas xD

joecarl

Sí, al seleccionar GUI application estas configurando el compilador para que cree un ejecutable que no muestre ninguna consola, sino interfaces visuales, pero si no defines ninguna interfaz visual pues no deberia mostrarse nada.

Kaxperday

Hola, yo  usaba visual studio 2013, para compilar el código de todas formas si te da error, de todas formas probaría a añadir #include "windows.h", haber si se corrige el error, sino  prueba a hacer un makefile y a usar gcc como dijeron, ya que estarás usando un compilador diferente.

Saludos.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.