none
crear aplicacion sin dialogo RRS feed

  • Pregunta

  • Hola.

    estoy trabajando con visual c++ 2010 express´. He creado una funcion que me actualiza un contador interno de un fichero, pero al ejecutarse me abre durante unos instantes un dialogo con fondo negro, como si se tratara de una consola MS DOS. No he trabajado casi nada con visual c++ y no sé como ejecutar mi aplicación sin que se abra ninguna pantalla. Me podéis ayudar?. Que opción del compilador o linker tengo que cambiar?

    gracias

    jueves, 15 de marzo de 2012 11:18

Respuestas

  • El tipo de aplicación depende del tipo de proyecto seleccionado cuando se crea dicho proyecto.  Me parece que usted seleccionó un proyecto de consola en vez de un proyecto de Windows.  Seguramente modificando las propiedades puede convertirlo, pero lo más fácil y seguro es crear un nuevo proyecto, esta vez del tipo apropiado.

    Visual Studio tiene varios tipos de proyecto, pero si su proyecto es tan sencillo como cuenta, le recomiendo crear un proyecto de windows vacío.

    La opción en español no la conozco pues uso Visual Studio en inglés (mi compañía es multinacional).  La opción está en Visual C++, luego win32, y finalmente a la derecha, Win32 Project.  Le da un nombre y aparece un cuadro de diálogo donde puede usted seleccionar algunos detalles.  Lo importante aquí sería seleccionar "Windows application" para el tipo, y le recomiendo "Empty project" en las opciones adicionales.  Esto crea un proyecto del tipo adecuado y además en blanco.

    Ahora agregue un archivo de código .cpp nuevo y escriba la función principal wWinMain y la inclusión de los encabezados que utilizará:

    //Mi aplicación debe correr como mínimo en Windows XP:
    #define _WIN32_WINNT _WIN32_WINNT_WINXP
    //No queremos los macros min() y max():
    #define NOMINMAX
    //Incluimos el SDK de Windows.
    #include <Windows.h>
    //Incluya cualquier otra cosa que ocupe.  Si ocupa min() o max(), puede usar los del STL:
    #include <algorithm>
    //En caso de que utilice la clase wstring de STL:
    #include <string>
    //Inicio del programa.  Este es el nombre para UNICODE.
    //Es el siglo 21:  Todo programa nuevo debe usar Unicode.
    int wWinMain(HINSTANCE hInst, HINSTANCE prevInst, LPWSTR cmdLine, int nCmdShow)
    {
        //Aquí la lógica de su programa.
    }


    Jose R. MCP

    • Marcado como respuesta egheos viernes, 16 de marzo de 2012 14:18
    • Desmarcado como respuesta egheos viernes, 16 de marzo de 2012 14:19
    • Marcado como respuesta egheos viernes, 16 de marzo de 2012 14:20
    jueves, 15 de marzo de 2012 14:37
    Moderador

Todas las respuestas

  • El tipo de aplicación depende del tipo de proyecto seleccionado cuando se crea dicho proyecto.  Me parece que usted seleccionó un proyecto de consola en vez de un proyecto de Windows.  Seguramente modificando las propiedades puede convertirlo, pero lo más fácil y seguro es crear un nuevo proyecto, esta vez del tipo apropiado.

    Visual Studio tiene varios tipos de proyecto, pero si su proyecto es tan sencillo como cuenta, le recomiendo crear un proyecto de windows vacío.

    La opción en español no la conozco pues uso Visual Studio en inglés (mi compañía es multinacional).  La opción está en Visual C++, luego win32, y finalmente a la derecha, Win32 Project.  Le da un nombre y aparece un cuadro de diálogo donde puede usted seleccionar algunos detalles.  Lo importante aquí sería seleccionar "Windows application" para el tipo, y le recomiendo "Empty project" en las opciones adicionales.  Esto crea un proyecto del tipo adecuado y además en blanco.

    Ahora agregue un archivo de código .cpp nuevo y escriba la función principal wWinMain y la inclusión de los encabezados que utilizará:

    //Mi aplicación debe correr como mínimo en Windows XP:
    #define _WIN32_WINNT _WIN32_WINNT_WINXP
    //No queremos los macros min() y max():
    #define NOMINMAX
    //Incluimos el SDK de Windows.
    #include <Windows.h>
    //Incluya cualquier otra cosa que ocupe.  Si ocupa min() o max(), puede usar los del STL:
    #include <algorithm>
    //En caso de que utilice la clase wstring de STL:
    #include <string>
    //Inicio del programa.  Este es el nombre para UNICODE.
    //Es el siglo 21:  Todo programa nuevo debe usar Unicode.
    int wWinMain(HINSTANCE hInst, HINSTANCE prevInst, LPWSTR cmdLine, int nCmdShow)
    {
        //Aquí la lógica de su programa.
    }


    Jose R. MCP

    • Marcado como respuesta egheos viernes, 16 de marzo de 2012 14:18
    • Desmarcado como respuesta egheos viernes, 16 de marzo de 2012 14:19
    • Marcado como respuesta egheos viernes, 16 de marzo de 2012 14:20
    jueves, 15 de marzo de 2012 14:37
    Moderador
  • Muchas gracias

    He resuelto el problema generando un nuevo proyecto con las indicaciones que me has dado. Me funciona todo correctamente.

    viernes, 16 de marzo de 2012 14:22