• Domingo 22 de Diciembre de 2024, 06:27

Autor Tema:  Programa En Cualquier Pc  (Leído 3694 veces)

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Programa En Cualquier Pc
« en: Domingo 23 de Abril de 2006, 11:02 »
0
Hemos realizado un programa con visual c++ y despues de compilar (F7) el ejecutable q crea no funciona en otros pcs pero si en el que lo hemos creado.
En el resto de PC's pone que nos falta una libreria DLL. ¿Cómo se puede crear un ejecutable válido para cualquier PC?

Un Saludo.
Gracias.
La vida es dura
             SPYFLY


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #1 en: Domingo 23 de Abril de 2006, 11:08 »
0
Si estas usando MFC es imposible sino tenes que seleccionar la opcion para que te enlace la RTL (Run Time Library) estatica y no dinamicamente.

Aca tenes un programa para ver que librerias necesita tu ejecutable:
http://www.dependencywalker.com

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #2 en: Domingo 23 de Abril de 2006, 12:39 »
0
No lo hemos entendido bien.
¿Con MFC no se puede ejecutar ese programa en otro PC?
Si con MFC no se puede, como deberiamos hacer esta aplicacion para que sea compatible en más PC´s.
Si existe alguna manera de hacerlo con MFC ¿cual es?

Gracias.
La vida es dura
             SPYFLY


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #3 en: Domingo 23 de Abril de 2006, 14:18 »
0
Cita de: "spyfly"
No lo hemos entendido bien.
¿Con MFC no se puede ejecutar ese programa en otro PC?
Si con MFC no se puede, como deberiamos hacer esta aplicacion para que sea compatible en más PC´s.
Si existe alguna manera de hacerlo con MFC ¿cual es?

Gracias.
Si se puede pero necesitan las librerias correspondientes a MFC si la enlazas dinamicamente. Esto se puede controlar para que no se haga dinamico sino estatico, entonces no se necesita nada para que pueda funcionar en cualquier PC.

En la configuracion del proyecto, General, Valores predeterminados del proyecto: Uso de MFC >> Utilizar MFC en una biblioteca estatica.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Programa En Cualquier Pc
« Respuesta #4 en: Domingo 23 de Abril de 2006, 16:27 »
0
Pero visual C++ debe tene un generador de instaladores ( setup factory) o algo así,  entonces el detectará las dependencias en cuanto a librerias y te creara un pack con todo lo ncesario... como no se que version de vs tienes no te puedo ayudar mas por el momento, pero básicamente esa es la idea.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #5 en: Domingo 23 de Abril de 2006, 18:10 »
0
Cita de: "JuanK"
Pero visual C++ debe tene un generador de instaladores ( setup factory) o algo así,  entonces el detectará las dependencias en cuanto a librerias y te creara un pack con todo lo ncesario... como no se que version de vs tienes no te puedo ayudar mas por el momento, pero básicamente esa es la idea.
Si, se puede generar un instalador pero la pregunta es:

Cita de: "spyfly"
Hemos realizado un programa con visual c++ y despues de compilar (F7) el ejecutable q crea no funciona en otros pcs pero si en el que lo hemos creado.
En el resto de PC's pone que nos falta una libreria DLL. ¿Cómo se puede crear un ejecutable válido para cualquier PC?

Entonces la respuesta es que se debe enlazar estaticamente la MFC.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Programa En Cualquier Pc
« Respuesta #6 en: Domingo 23 de Abril de 2006, 18:23 »
0
Cita de: "Eternal Idol"
Entonces la respuesta es que se debe enlazar estaticamente la MFC.

Si, y funciona indudablemente, sobre todo si el proyecto es pequeño y solo estara instalado en unas cuantas pc, pero no me parece la mejor solución, desde que se pueda enlazar dinamicamente mucho mejor, pues no podemos tener todos los programas con tamaño mayor por estar linkeando estaticamente todas las librerias, para eso se crearon las librerias dinámicas no? :ph34r:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #7 en: Domingo 23 de Abril de 2006, 18:28 »
0
Cita de: "JuanK"
Si, y funciona indudablemente, sobre todo si el proyecto es pequeño y solo estara instalado en unas cuantas pc, pero no me parece la mejor solución, desde que se pueda enlazar dinamicamente mucho mejor, pues no podemos tener todos los programas con tamaño mayor por estar linkeando estaticamente todas las librerias, para eso se crearon las librerias dinámicas no? :ph34r:
Depende, si es un ejecutable solo tiene que copiarlo y estara listo en cualquier maquina para funcionar. Tampoco hay necesidad de "recompilar" el instalador cada vez que se genera un nueva version y el tamaño va a ser aproximado ya que la libreria que no enlaces estaticamente la tendras que distribuir dentro del instalador ...

Mientras que si tenemos varios archivos con diferentes ejecutables y DLLs que forman un proyecto sin duda un instalador (aunque no recomendaria el del VS) es la solucion mas acertada.

Las librerias dinamicas no siempre son la respuesta correcta, especialmente cuando son de terceros y tenemos que ocuparnos de problemas como el versionado. Si fueran librerias que vinieran siempre con el S.O. evidentemente no existiria este dilema.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #8 en: Lunes 24 de Abril de 2006, 09:57 »
0
Nosotros utilizamos microsoft visual c++ 6.0 y ya hemos conseguido crear un proyecto que funcione en cualquier PC seleccionando la opción de usar la MFC estaticamente cuando creamos el proyecto.
¿Como se podria utilizar el instalador de vs?

Gracias
Un saludo
La vida es dura
             SPYFLY


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #9 en: Lunes 24 de Abril de 2006, 13:26 »
0
Cita de: "spyfly"
Nosotros utilizamos microsoft visual c++ 6.0 y ya hemos conseguido crear un proyecto que funcione en cualquier PC seleccionando la opción de usar la MFC estaticamente cuando creamos el proyecto.
¿Como se podria utilizar el instalador de vs?
Me alegro de que les haya servido; en cuanto al instalador de VC++ no se los recomiendo, es preferible usar otro mejor.

NSIS: Open Source http://nsis.sourceforge.net/Main_Page
InstallShield: propietario http://www.installshield.com/

Hay MUCHOS mas, prueben a ver cual es el que mejor les viene.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #10 en: Miércoles 19 de Julio de 2006, 17:23 »
0
si, nos han dicho que el de Visual C++ no es el mejor que hay otros mejores. Gracias por los links.
La vida es dura
             SPYFLY


x.cyclop

  • Miembro de PLATA
  • *****
  • Mensajes: 1039
  • Nacionalidad: mx
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #11 en: Jueves 20 de Julio de 2006, 00:26 »
0

- Great works aren't produced on the first try. [Ernest Hemingway]
- Be ambitious, yet realistic in your dreams. Do something that makes a positive impact. Don’t let the nay-sayers get you down. [Bjarne Stroustrup]

spyfly

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Programa En Cualquier Pc
« Respuesta #12 en: Jueves 20 de Julio de 2006, 08:51 »
0
Ok, Gracias.
La vida es dura
             SPYFLY