none
como indicar inicio de ejecución RRS feed

  • Pregunta

  • Hola a todos!

    Tengo experiencia nula en Visual C++ y me han encargado realizar una nueva interfaz para un código en C++ implementado hace varios años.

    Abro el proyecto con el Visual studio 2005 con el entorno para Visual C++ y abro el proyecto como un proyecto con código existente.

    Al construir y compilar aparece la antigua y deprimente interfaz ya construida (un único fichero que contiene una única ventana con dos botones). Pero yo añado una nueva WindowsForm mucho más bonita y actual, el caso es q cuando vuelvo a pulsar F5 (para compilar, construir y todo eso) sigue apareciendo la antigua interfaz.

    Mi pregunta es: ¿Como le indico que empiece  por la nueva ventana que yo he creado? Me imagino que en algun sitio deberé indicarle algo así como punto d eentrada de ejecución o algo relacionado con un main, pero no lo encuentro por ningun sitio.

    Espero que me podais ayudar como siempre y que hayais entendido bien mi problema, si no es asi no dudeis en advertirmelo como respuesta al mensaje.

    Muchas gracias por la colaboracion, un saludo!
     

    viernes, 25 de abril de 2008 21:07

Todas las respuestas

  •  

    no tiene winmain o algo asi??
    viernes, 25 de abril de 2008 21:13
  • El archivo antiguo que muestra la interfaz antigua si tiene un winMain, pero la WindowsForm que yo añado no aparece con nignun winMain. Entonces, debbo yo escribir el WinMain en algún sitio? Se indica como alguna opción al construir el proyecto?

    es lo que no soy capaz, que empiece por la nueva ventana que yo he creado.

    Gracias!

    viernes, 25 de abril de 2008 21:18
  •  

    Esta respuesta funciona en asp.net ya que no tengo mucha experiencia en winforms pero talvez te sirva.

     

    En el explorador de soluciones se le da un click derecho a la pagina (en este caso forma) que quieres que inicie y seleccionas la opción Establecer como página de inicio.

     

    Tambien funciona de esta forma cuando tienes varios proyectos en una solución y quieres establecer uno por defecto.

     

     

     

    viernes, 25 de abril de 2008 22:11
  • Je, estás intentando mezclar código administrado (WindowsForms) con no administrado. No puedes hacer eso. Al menos no como lo pretendes. Primero, necesitas saber la diferencia entre código administrado y no administrado (es un artículo antiguo y la sintaxis de C++/CLI ha cambiado, pero te servirá de introducción).

    Entonces, el código normal que escribes en C++ desde siempre, siguiendo las especificaciones del estándar, es C++ (ANSI C++ si quieres). El código que escribes para la plataforma .NET Framework es C++/CLI. Nota que son dos lenguajes completamente diferentes y por lo tanto, funcionan de forma diferente. Dicho eso, no puedes mezclar ambos. Pero C++/CLI provee ciertas interfases para que puedas convertir código no administrado (C++) en código administrado (C++/CLI).

    En resumen, puedes simplemente seguir empleando C++ (con MFC, WTL, Win32 o la librería que empleabas antes) y las aplicaciones pueden seguir siendo potentes. Si te quieres deshacer de los "look-and-feel" pasados, simplemente incluye un archivo manifiesto para que tu programa referencie los nuevos controles de XP en lugar de los viejos de Windows 95 y 2000. Si quieres emplear código administrado y WinForms, tendrás primero que leer una introducción sobre C++/CLI y luego leerte algo más técnico para que le agarres la onda. Luego podrás leer sobre cómo mezclar código administrado con no administrado.

    Lo malo del asunto es que es mucha información. Aprender C++/CLI es aprender otro lenguaje y otra plataforma (.NET Framework).

    Saludos.
    viernes, 25 de abril de 2008 22:44
  • Hola de nuevo!

    Os agradezco el interés y todas las soluciones dadas al problema que os comenté.

    He estado mirando por internet y al parecer lo mejor es hacer el interfaz del viejo código de C++ con MFC.

    Pero sigo con problemas. No soy capaz de encajar todas las piezas. Os comento lo que pasa:

    Abro el Visual Studio. Selecciono: Nuevo Proyecto -> Otros lenguajes -> Visual C++ -> MFC -> MFCApplication.Me aparecen pantallas para seleccionar diferentes parámetros, selecciono únicamente los siguientes:
    -  Tipo de aplicación: Dialog based
    - Estilo de proyecto: MFC standard
    - Uso de MFC: en una DLL compartida (tb probé con el MFC estático)
    - Common control Manifest (creo q es para poder utilizar las pantallas del XP o el windows q haya en el PC...)

    Compilo y ejecuto con el F5 y me sale una panatalla prediseñada con 2 botones de 'OK' y 'Cancel'. Hasta ahi todo perfect.

    El problema viene cuando añado al proyecto una clase de C++ que realiza una serie de funciones que tengo que mostrar. No es código administrado ni C++/CLI, pero crei que para utilizar el MFC no hacia falta.

    Lo añado y al compilar me sugiere añadir la línea '#include stdafx.h"', lo hago. Y al volver a compilar me da errores desde la primera línea, yo entiendo q es porq no entiende el código que intenta compilar. Os pongo una muestra:

    #include "Miscel.h"
    #include "stdafx.h"

    void Vaciar(tRegIndiceEntrDic *&Lista);

    void Borrar(tRegNodo *&Nodo);

    void ImprimirArbolesStAux(FILE *Salida, FILE *Reglas, tRegNodo *Nodo, tRegLEnteros *L);

    void CrearCopia(tRegLNodos *ListaNodos, int P, tRegNodo *NodoCopia);

    void CambiarCapacidad(tRegLNodos *&ListaNodos, int Increm);


    //********************************************************************
    //Esta función vacía la lista de nodos recibida en ListaNodos.

    void Vaciar(tRegLNodos *&ListaNodos)
    {
        int i;
        int j;

        if (ListaNodos != NULL)
        {
            if (ListaNodos->Elementos != NULL)
                for (i = 0; i < ListaNodos->MaxElementos; i++)

     // aqui hay mas codigo que da igual para el mensaje//

            for (j = 0; j < TAM_ID_LIBRE; j++)
                ListaNodos->IdLibreIdea[j] = true;
    }



    y los errores son:
    Error    1    error C2065: 'tRegIndiceEntrDic' : undeclared identifier    c:\...\miscel.cpp    5   
    Error    2    error C2065: 'Lista' : undeclared identifier    c:\...\miscel.cpp    5   
    Error    3    error C2182: 'Vaciar' : illegal use of type 'void'    c:\...\miscel.cpp    5
    Error    4    fatal error C1903: unable to recover from previous error(s); stopping compilation    c:\...\miscel.cpp    5   

    Todos esos identificadores están declarados en 'Miscel.h'. De hecho todo este codigo me compila a traves de línea de comandos con el gcc, es decir, que el codigo es correcto.

    Hasta ahora había programado bastante y sobre todo interfaces pero solo con Java, que no da estos problemas de versiones diferentes del mismo lenguaje, por eso seguramente estoy cometiendo errores, o cosas básicas que se me pasan por alto. No es una crítica, solo quiero poneros en mi lugar. Si veis que estoy haciendo algo mal os agradecería una ayudita.

    Mis preguntas son, ¿No voy a poder hacerlo con el Visual Studio debido a que no puede compilar el código del que dispongo? ¿Me recomendais otro entorno para hacerlo sin problemas? ¿Es imposible hacer un interfaz para ese código? ¿Si lo hago bajandome un Visual C++ del año de la polca se solucionaría?

    En fin... solo quiero hacer un simple interfaz (es q ni siqiera es complicao) con un codigo C++ estándar, si alguien me puede ayudar...

    Siento haber aburrido con un mensaje tan largo.

    Un saludo y gracias a los que hayan aguantado leyendo hasta aqui



    sábado, 3 de mayo de 2008 19:29
  • si lo q deseas es indicar cual es el formulario co el cual inicia tu aplicacion ..????

     

    Entra en el menu VER  - EXPLORADOR DE SOLUCIONES-  ,  te va a mostrar la ventana donde estan todos los formularios de tu aplicacion...al final debajp del ultimo formulario,hai una pestaña Program.Cs ....haz doble clik  y encontraras un fragmento de codigo  donde  se especifica el formulario de inicio,por defecto estara Form1, si as cambiado el nombre de el formulario ,aparecera ese nombre q especificaste, borra  y escribe tu formulario de inicio...

     

    Efrain Mejias C

    Valencia - Venezuela

    viernes, 27 de agosto de 2010 15:25