Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

EXE sin dependencia

Estas en el tema de EXE sin dependencia en el foro de Visual Basic clásico en Foros del Web. Saludos. Es posible compilar un exe o dll o ocx, unico sin dependencia? En mi aplicación tengo añadido winsock, anigif, listview, shocwaveflash Quisiera compilar una ...
  #1 (permalink)  
Antiguo 19/06/2005, 21:21
 
Fecha de Ingreso: mayo-2005
Mensajes: 20
Antigüedad: 19 años
Puntos: 0
EXE sin dependencia

Saludos.

Es posible compilar un exe o dll o ocx, unico sin dependencia?

En mi aplicación tengo añadido winsock, anigif, listview, shocwaveflash
Quisiera compilar una exe en el cual no necesite de los controles añadidos. Para que solo quede el exe compilado. Mas o menos como un instalador, como sabran solo es un archivo.

Si no es posible crear un exe de este tipo, entonces sera posible crear un ocx o dll que no tenga dependencia. Para quedarme con el exe y una dll o ocx.

Mi proposito es que mi aplicación tenga maximo un archivo, sin contar el exe.


Gracias de antemano.
  #2 (permalink)  
Antiguo 20/06/2005, 08:46
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Que yo sepa, con VB eso es imposible, siempre vas a depender al menos de la librería runtime de VB. Sobre los controles, lo que puedes hacer es crear un instalador, no hay otra manera, y hasta éso lo hace mal el creador de instaladores de VB...

La única manera que se me ocurre es que crees un programa (preferiblemente en C) o que te le creen y que al ejecutarle extraiga de él mismo los archivos necesarios y les coloque en donde sea preciso, para después ser borrado automáticamente. Un empaquetador vaya, sin ventanitas tipo WinZip. :)
  #3 (permalink)  
Antiguo 21/06/2005, 00:36
 
Fecha de Ingreso: mayo-2005
Mensajes: 20
Antigüedad: 19 años
Puntos: 0
Hola, y gracias por responder.

Se que siempre va hacer necesario el run-time.
Lo que intento es hacer un exe sin dependencia exepto el run-time claro esta.
Pero creo que eso no es posible.

En un articulo si no me equivoco, pude leer que las dll estaticas, al compilarlas este agregan todo el codigo necesario para poder, compilarse sin dependencia.
Esto quisas sea posible, pero no se como lograrlo, no tengo conocimientos sobre las dll, o controles ocx.

Ahora segun este articulo, espero crear una dll o ocx sin dependencia.
En la dll o en el ocx, pienso agregar los controles, sockwaveflash, anigif, etc.

Por favor me puedes explicar sobre la diferencia entre una dll dinamica y una dll estatica. Y como podria crear en vb estos tipos de dll.

Disculpa pero soy novato.
  #4 (permalink)  
Antiguo 21/06/2005, 01:10
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
VB no soporta enlace estatico, la DLL como tal no cambia en nada sino que cambia el tipo de acceso. Uno se hace atraves de la tabla de importacion del ejecutable (PE), esto no lo hace VB ya que solo enlaza estaticamente con MSVBX0.DLL, las DLL se cargan dinamicamente con LoadLibrary y se consiguen sus funciones con GetProcAddress, esto VB lo hace automaticamente cuando usas Declares.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 21/06/2005, 11:44
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Una estática se "enlaza" en el proceso de compilación, todos los símbolos deben estar bien asignados, etc etc... Necesitas un archivo .lib que contiene los símbolos exportados. Pero todo esto es imposible en VB.

Una dinámica la carga un programa y puede o no conseguirlo. Después llama a los símbolos que ella cree que exporta y puede o no conseguirlo para después usarlos. Esto lo puede hacer VB porque se hace a través de la API, no el lenguaje en particular.

En definitiva una estática es código "acoplado" como algo compilado más, se suelen usar como módulos y no tener que recompilar todo cada vez. Las dinámicas se pueden usar además como módulos "intercambiables": imagínate un programa que su núcleo está en una dll y puedes decargarte sólo la dll, no necesitas el programa entero, o una dll por cada add-on que añadas a un programa, etc (ejemplo: WinAmp).

En los dos casos necesitas el archivo dll.
  #6 (permalink)  
Antiguo 21/06/2005, 11:50
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
En realidad estamos confundiendo un poco la terminologia. Las librerias estaticas son archivos de extension .LIB que se pueden enlazar solo en tiempo de 'compilacion' a un ejecutable mientras que las DLLs se cargan dinamicamente ya sea por el loader (enlace ESTATICO de una libreria DINAMICA mediante la tabla de importacion de PE) o dinamicamente con LoadLibrary y afines.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 21/06/2005, 18:44
 
Fecha de Ingreso: abril-2005
Ubicación: Guadalajara, Jalisco
Mensajes: 113
Antigüedad: 19 años, 1 mes
Puntos: 0
es imposible rerquieren el archivo msvbxx.dll mas los controles ocx que incluyas por ejemplo si usas el winsock debes agregar el mswinsock.ocx
  #8 (permalink)  
Antiguo 22/06/2005, 00:28
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Si, eso esta dicho pero los controles OCX no son imprescindibles mientras que la libreria de Run Time (MSVBXX.DLL) si.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #9 (permalink)  
Antiguo 22/06/2005, 00:45
 
Fecha de Ingreso: mayo-2005
Mensajes: 20
Antigüedad: 19 años
Puntos: 0
DLL u OCX sin dependencia

En definitiva, es imposible crear una dll o ocx sin dependencia?

La verdad pude ver muchas dll u ocx, (claro esta para comprar) que no dependian de otras dll u otros ocx.

Un ejemplo seria una dll que comprimia en cab y en zip, otro que envia e-mail. Supongo que este ultimo deberia depender del control winsock.

Otra control que pude ver seria el que puede visualizar archivos de imagenes y peliculas flash (bmp, jpg, gif, swf)

Tambien pude ver que es posible añadir eventos a una dll, algo que crei que no se podia. (pero no se si fue creado con vb, lo mas probable fue con c++)



Espero que vb no este limitado a esto. Porque pude ver que con vb se pueden hacer muchas maravillas.

Crear una dll u ocx sin dependencia.
  #10 (permalink)  
Antiguo 22/06/2005, 01:17
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
¿Como lo sabes si no las compraste? Probablemente instalen los componentes que necesiten o no esten hechas en VB sino en lenguajes mas potentes y profesionales que soportan ejecutables solo dependientes del Sistema Operativo.

La respuesta corta es no, VB no lo soporta con su 'compilador' oficial. La solucion es simple, necesitas Winsock entonces usas la API de Windows y no un control OCX. De esta manera solo dependes de la maquina virtual de VB.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #11 (permalink)  
Antiguo 22/06/2005, 23:14
 
Fecha de Ingreso: mayo-2005
Mensajes: 20
Antigüedad: 19 años
Puntos: 0
Hola.

Cual seria el lenguaje de programación que deberia usar para poder crear dll u ocx sin dependencia?

Te paso esta url: http://www.softpedia.com/get/Program...owerWrap.shtml

Gracias por toda la información que me proporcionaron sobre las dll.
  #12 (permalink)  
Antiguo 23/06/2005, 00:05
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
C/C++ o ensamblador, en varias versiones de Windows tenes que tener cuanto menos Kernel32.dll o no funciona el programa o no carga la DLL.

Eso es un empaquetador, lo dice claramente en la descripcion.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:54.