none
Ayuda para compilar c++ RRS feed

  • Pregunta

  • Hola que tal, tengo una duda... hice un programa en c# que debe ejecutarse como un autorun desde un cd rom, la aplicación funciona perfectamente, ya la tengo probada y todo bien, ahora, esta app funciona con el framework 2 pero no todos los sistemas tienen instalado el framework, por lo tanto hice un programita en c++ con VS 2005 que verifica si está instalado el framework, si está instalado ejecuta el programa C#, si no, instala el framework 2 y después ejecuta el programa C#, pero, cuando probé este 'cargador' en una máquina con windows xp sp2 recien instalado (ojo, no hay nada instalado en esa máquina) el programa no se ejecuta, me manda el mensaje "Este programa no puede iniciar porque su configuración es incorrecta", yo pensé que me faltaban librerías o algo asi porque el programa utiliza algo de ATL, entonces para descartar esta suposición hice un "hola mundo" en c++ en vs 2005 y lo ejecuté en esta máquina y me apareció el mismo mensaje, después hice un hola mundo con dev cpp y este si se ejecuta bien en cualquier máquina por lo cual ahora supongo que mi error es al compilar mi aplicación con visual studio 2005 y pues ahi no se qué puedo hacer, alguien podría ayudarme por favor?? cómo tengo que compilar mi programa para que se ejecute en cualquier windows sin necesidad de instalarle nada??

    Gracias de antemano
    viernes, 6 de noviembre de 2009 18:37

Respuestas

  • Te faltan las DLL del runtime, pero es como la pescadilla que se muerde la cola... Para que ese lanzador funcione sin necesidad de instalar ningún runtime, te tienes que ir a las opciones del proyecto y cambiar

    -En General -> Use of MFC, si pone "Use MFC as Shared DLL" tienes que poner "Use MFC in a static library.
    -En General -> Use of ATL, si pone "Dynamic link to ..." tienes que poner "Static link..."
    -En C/C++ -> Code Generation -> Runtime Library debes cambiar por "Muti Threaded" (Sin DLL).

    En los dos primeros si no usas MFC o ATL, no hace falta que los toques.

    Hazte cuenta que una build debug tampoco te va a funcionar, tiene que ser con una release, y cambiar eso en la release.
    Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    • Marcado como respuesta OmarLc28 miércoles, 11 de noviembre de 2009 17:54
    miércoles, 11 de noviembre de 2009 17:30
    Moderador

Todas las respuestas

  • Te faltan las DLL del runtime, pero es como la pescadilla que se muerde la cola... Para que ese lanzador funcione sin necesidad de instalar ningún runtime, te tienes que ir a las opciones del proyecto y cambiar

    -En General -> Use of MFC, si pone "Use MFC as Shared DLL" tienes que poner "Use MFC in a static library.
    -En General -> Use of ATL, si pone "Dynamic link to ..." tienes que poner "Static link..."
    -En C/C++ -> Code Generation -> Runtime Library debes cambiar por "Muti Threaded" (Sin DLL).

    En los dos primeros si no usas MFC o ATL, no hace falta que los toques.

    Hazte cuenta que una build debug tampoco te va a funcionar, tiene que ser con una release, y cambiar eso en la release.
    Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    • Marcado como respuesta OmarLc28 miércoles, 11 de noviembre de 2009 17:54
    miércoles, 11 de noviembre de 2009 17:30
    Moderador
  • Hola amigo, gracias por tu respuesta, te comento que ya hice el cargador de otro modo pero en ves de VS2005 usé Dev C++ y pues con este no hubo necesidad de instalar algo extra para hacer funcionar mi aplicación en cualquier windows, obviamente ya no usé ATL ni cosas por el estilo, solo C++ y las librerias estándard del api de windows. De todos modos muchas gracias por tu respuesta ya qe será util para futuros desarrollos.

    Saludos!!
    miércoles, 11 de noviembre de 2009 17:54