Librerias dll en tiempo de ejecuci贸n.
Necesito saber si es posible conectarse a una libreria dll en tiempo de ejecuc铆贸n. He creado una clase VB, pero si la modifico (por ejemplo al agregarle funciones) y compilarla, estoy obligado a compliar el programa central nuevamente. Mi intenci贸n es independizar la .dll del .exe, para as铆 mejorar la versi贸n con s贸lo cambiar la librer铆a.
kipied, si tienes registrada tu DLL en el systema, el proyecto EXE no lo necesitar谩s volver a compilar cuando modifiques la DLL.
Como digo, si la tienes registrada en la m谩quina, te aparecer谩 en el men煤 Proyecto>Referencias...
Luego s贸lo tienes que hacer:
Dim iMiClase As TuProyectoDLL.cClaseDLL
Set iMiClase = New cClaseDLL
Call iMiClase.ProcPublico(Param)
MsgBox iMiclase.PropiedadPublica
...
etc...
Set iMiClase = Nothing 'Destruyes la instancia cuando no la vayas a necesitar m谩s.
Tambi茅n puedes referenciar tu DLL en tiempo de ejecuci贸n declarando una variable Object, y creando una instancia a la clase de la DLL:
Dim iMiClase
Set iMiClase = CreateObject("TuProyectoDLL.cClaseDLL")
...
...
_
Un saludo.
Como digo, si la tienes registrada en la m谩quina, te aparecer谩 en el men煤 Proyecto>Referencias...
Luego s贸lo tienes que hacer:
Dim iMiClase As TuProyectoDLL.cClaseDLL
Set iMiClase = New cClaseDLL
Call iMiClase.ProcPublico(Param)
MsgBox iMiclase.PropiedadPublica
...
etc...
Set iMiClase = Nothing 'Destruyes la instancia cuando no la vayas a necesitar m谩s.
Tambi茅n puedes referenciar tu DLL en tiempo de ejecuci贸n declarando una variable Object, y creando una instancia a la clase de la DLL:
Dim iMiClase
Set iMiClase = CreateObject("TuProyectoDLL.cClaseDLL")
...
...
_
Un saludo.
Gracias, pero he hecho lo primero y cuando corro el programa bajo VB me dice que la versi贸n es anterior y se cae. De hecho al compilar nuevamente la Clase en el men煤 Referencia me aparecen dos librerias con el mismo nombre (la antigua y la nueva, incluso puede haber m谩s dependiendo de las compilaciones que haga). Cuando corro el programa original, pero con la nueva dll, me dice que no tengo "licencia para usar esa aplicaci贸n".
Por eso me interesar铆a si puedes ayudarme. Me interes贸 la segunda opci贸n, puedes detallarla un poco m谩s ????.
Gracias.
Por eso me interesar铆a si puedes ayudarme. Me interes贸 la segunda opci贸n, puedes detallarla un poco m谩s ????.
Gracias.
La mejor forma de atacar un programa de este tipo es crear un .exe de arranque, porque, porque es muy comun que cuando un proyecto no esta terminado completamente o se esta actualizando, lo que se tiene que hacer es cambiar las dll's modificadas y el exe, esto se vuelve engorroso andar registrando de maquina en maquina nuevamente las dll's, por lo que el tip que te doy es que generes un programa de arranque independiente de tu aplicacion, que verifique cual es la ultima version de las dll's y exe que hayas actualizado, que las copie al directorio correspondiente de tu aplicacion y lo ejecute. si quieres que te amplie mas esta duda postea.
Gracias mamerto, me interesa lo que t煤 propones. Este programa de arranque ser铆a un tipo de isntalador (registrar) de las dll??.
Si eres el Kipied, alias Yerko Collao, que conoc铆 hace a帽os luz, responde,
Mirna Cort茅s
Mirna Cort茅s
En efecto, Lo que debe hacer el programa es:
1. Colocas las ultimas versiones en determinada carpeta del servidor.
2. cuando alguna estacion de trabajo ejecute tu programa, el arrancador lo que debe hacer es:
a. comparar las versiones de las dll's y el exe.
las que estan en el directorio cliente y las que se encuentran en el servidor.
b. si las ultimas versiones estan en el servidor, copia a la carpeta cliente el exe y los dll's actuales y que los registre.
c. que ejecute tu aplicacion y se cierre el arrancador.
todo por codigo. suerte
ve a esta pagina.
www.somser.com
existe mucho codigo de ejemplo muy bueno, aunque solo te deja descargar 3 ejemplos diarios, pero el que persevera alcanza, y asi podras programar tu arrancador. suerte
1. Colocas las ultimas versiones en determinada carpeta del servidor.
2. cuando alguna estacion de trabajo ejecute tu programa, el arrancador lo que debe hacer es:
a. comparar las versiones de las dll's y el exe.
las que estan en el directorio cliente y las que se encuentran en el servidor.
b. si las ultimas versiones estan en el servidor, copia a la carpeta cliente el exe y los dll's actuales y que los registre.
c. que ejecute tu aplicacion y se cierre el arrancador.
todo por codigo. suerte
ve a esta pagina.
www.somser.com
existe mucho codigo de ejemplo muy bueno, aunque solo te deja descargar 3 ejemplos diarios, pero el que persevera alcanza, y asi podras programar tu arrancador. suerte
Gracias mamerto. La clave para lo que quiero es registrar la nueva versi贸n de la dll. Entiendo lo del programa de arranque. en mi caso los clientes no son parte de una red (la informaci贸n se hace v铆a disquette), pero igual se puede hacer un programa para instalar (registrar) las nuevas dll.
Muchas gracias.
Muchas gracias.
