Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: boy-ka en 27 Julio 2015, 12:37 pm



Título: Incomodidad al ocultar consola
Publicado por: boy-ka en 27 Julio 2015, 12:37 pm
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
  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. int main(){
  5.  FreeConsole();
  6.  getchar();
  7.  return 0;
  8. }
  9.  
  10.  

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 ¬¬ **


Título: Re: Incomodidad al ocultar consola
Publicado por: ivancea96 en 27 Julio 2015, 14:48 pm
Si compilas con GCC, pásale el parámetro -mwindows.


Título: Re: Incomodidad al ocultar consola
Publicado por: Kaxperday en 27 Julio 2015, 15:42 pm
Código
  1. #pragma comment(linker, "/SUBSYSTEM:WINDOWS")
  2. 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.


Título: Re: Incomodidad al ocultar consola
Publicado por: boy-ka en 28 Julio 2015, 02:18 am
Muchisimas gracias amigos :D!, lo probaré y dira como me fue!

Hola!, mira lo he probado con el siguiente codigo:

Código
  1.  
  2. #pragma comment(linker, "/SUBSYSTEM:WINDOWS")
  3. #include <cstdlib>
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. int main(_In_ HINSTANCE hInstance,_In_opt_  HINSTANCE hPrevInstance,_In_  LPSTR lpCmdLine,_In_  int nCmdShow)
  9. {
  10.    system("PAUSE");
  11.    return EXIT_SUCCESS;
  12. }
  13.  

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

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

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


Título: Re: Incomodidad al ocultar consola
Publicado por: 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.


Título: Re: Incomodidad al ocultar consola
Publicado por: boy-ka en 28 Julio 2015, 12:11 pm
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?


Título: Re: Incomodidad al ocultar consola
Publicado por: 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.


Título: Re: Incomodidad al ocultar consola
Publicado por: boy-ka en 29 Julio 2015, 12:59 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


Título: Re: Incomodidad al ocultar consola
Publicado por: joecarl en 29 Julio 2015, 13:48 pm
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.


Título: Re: Incomodidad al ocultar consola
Publicado por: Kaxperday en 29 Julio 2015, 17:20 pm
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.