Aplicaciones en VB6 sin msvbvm60.dll

Iniciado por keef, 23 Diciembre 2020, 23:23 PM

0 Miembros y 1 Visitante están viendo este tema.

keef

Hola, mi duda es la siguiente:

Hace algún tiempo, probando códigos y cosas por el estilo, me di cuenta de que el archivo "Msvbvm60.dll" es necesario para ejecutar aplicaciones hechas en VB6

Esto significa que, si yo, por ejemplo, creo una aplicación nueva en Vb6, la compilo, genero el .EXE, y la intento probar en otra máquina que no tiene este archivo, la aplicación no podrá ejecutarse; soltando un mensaje de error parecido a: "Error, falta el archivo Msvbvm60.dll".

Entonces, yo me pregunto:

¿Cómo puede un programador en Vb6, hacer sus aplicaciones portables?

Es decir, que las aplicaciones creadas, puedan ejecutarse en cualquier máquina sin necesidad de esta DLL

¿Es esto posible?

Si es así, agradezco cualquier información

(Obviamente, antes de preguntar acá, busqué información por varios buscadores, y mis resultados fueron, increíblemente decepcionantes y depresivos.)

Gracias por adelantado
Saludos.

Serapis

No.
Prácticamente todos los lenguajes tienen dependencias, lo que sucede en ciertas ocasiones es que esas dependencias suelen estar ya instaladas en el S.O. (para VB6, era el caso con winXP, al dejar de dar soporte tanto a vb6 como a winxp, Mocosoft entonces no lo incluye en los últimos S.O.)
Esa dll, es la librería 'runtime' de VB6, es necesaria sí o sí.
Si tu quieres hacer tu aplicación portable simplemente adjunta dicha librería con tu ejecutable (en la misma carpeta y listo). También puede embeberse en el ejecutable, pero entonces queda muy pesado el ejecutable y hasta el antivirus podría marcarlo como sospechoso.

keef

Cita de: Serapis en 24 Diciembre 2020, 11:40 AM
No.
Prácticamente todos los lenguajes tienen dependencias, lo que sucede en ciertas ocasiones es que esas dependencias suelen estar ya instaladas en el S.O. (para VB6, era el caso con winXP, al dejar de dar soporte tanto a vb6 como a winxp, Mocosoft entonces no lo incluye en los últimos S.O.)
Esa dll, es la librería 'runtime' de VB6, es necesaria sí o sí.
Si tu quieres hacer tu aplicación portable simplemente adjunta dicha librería con tu ejecutable (en la misma carpeta y listo). También puede embeberse en el ejecutable, pero entonces queda muy pesado el ejecutable y hasta el antivirus podría marcarlo como sospechoso.

Hola

Gracias por la aclaración.

Lo de incluir la librería en el ejecutable suena bastante interesante, veré como hacerlo :rolleyes:

Saludos.


EdePC

Acabo de revisar un ISO original de WinXP_SP3, Win7_SP1, Win8.0 y Win8.1, todos incluyen el archivo "msvbvm60.dll"



Si mal no recuerdo el problema venía cuando se incluía controles activex u ocx, en esos casos había que descargar o incluir con el instalador/programa dichos controles.

No sé si hayan problemas con las versiones de msvbvm60.dll, si los hubiera entonces si que es buena idea incluir la dll correcta.

keef

Cita de: EdePC en 24 Diciembre 2020, 21:14 PM

Si mal no recuerdo el problema venía cuando se incluía controles activex u ocx, en esos casos había que descargar o incluir con el instalador/programa dichos controles.

No sé si hayan problemas con las versiones de msvbvm60.dll, si los hubiera entonces si que es buena idea incluir la dll correcta.

Hola, eso quiere decir que si en ves de usar por ejemplo, un objeto ActiveX, uso una API que realice la misma función, la app no necesita estas librerías/controles ActiveX?

Gracias y saludos.

MCKSys Argentina

Cita de: Nk en 23 Diciembre 2020, 23:23 PM
¿Cómo puede un programador en Vb6, hacer sus aplicaciones portables?

Es decir, que las aplicaciones creadas, puedan ejecutarse en cualquier máquina sin necesidad de esta DLL

¿Es esto posible?

Si es así, agradezco cualquier información

Una solución que postié hace unos 9 años y que está entre los temas fijos de este subforo: https://foro.elhacker.net/programacion_visual_basic/tutorial_insertando_la_vm_de_vb6_en_un_exe-t345411.0.html

Para lo anterior, necesitas un poco de conocimientos "extra"; pero desde mi punto de vista, es lo que más conviene para aprender.

Por otro lado, basta con agregar la DLL en el dir de la app y listo. Aunque todos los windows modernos (desde win 7) ya la incluyen en el directorio system.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


keef

Cita de: MCKSys Argentina en 25 Diciembre 2020, 01:33 AM
Una solución que postié hace unos 9 años y que está entre los temas fijos de este subforo: https://foro.elhacker.net/programacion_visual_basic/tutorial_insertando_la_vm_de_vb6_en_un_exe-t345411.0.html

Para lo anterior, necesitas un poco de conocimientos "extra"; pero desde mi punto de vista, es lo que más conviene para aprender.

Por otro lado, basta con agregar la DLL en el dir de la app y listo. Aunque todos los windows modernos (desde win 7) ya la incluyen en el directorio system.

Saludos!

Hola!, recién descargué el archivo en Mega, se ve bastante útil en especial para nosotros los VBLovers jajajaj.

Eso de que está incluido en system, creo que tienes toda la razón, hace algunos meses probé un hola mundo en una PC con Windows 10, sin nada de Visual basic instalado y funcionó perfectamente.

Gracias por el tutorial, está bastante bueno   ;-)

Sus respuestas me inspiraron a seguir con VB y no tener que pasar a un lenguaje mas portable  :rolleyes:

Felices fiestas y saludos.

LeandroA

Hasta el día de hoy todos los WIN OS tiene Msvbvm60.dll, salvo que por algún motivo se haya desinstalado o bueno esas versiones para servidores no se bien como se llaman, pero digamos que si hablamos de instalaciones caseras todas la traen. despues si queres ser portable no utilices ocx, todo se puede hacer mediante apis

keef

Cita de: LeandroA en 29 Diciembre 2020, 03:07 AM
Hasta el día de hoy todos los WIN OS tiene Msvbvm60.dll, salvo que por algún motivo se haya desinstalado o bueno esas versiones para servidores no se bien como se llaman, pero digamos que si hablamos de instalaciones caseras todas la traen. despues si queres ser portable no utilices ocx, todo se puede hacer mediante apis

Exacto, eso mismo había pensado, los objetos OCX son lentos y restan portabilidad.

Ahora utilizo una API para todo, realmente son muy útiles y rápidas, y no son tan difíciles de ocupar  :rolleyes:

Saludos!