Visual Basic - Ayuda con DLL's (Muy urgente!!!)

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda con DLL's (Muy urgente!!!)

Publicado por Juan de jesus (12 intervenciones) el 27/04/2005 01:57:13
Hola a todos

Hace poco que quiero aprobechar las ventajas de hacer aplicaciones con modulos (Donde la aplicacion se conforma por el exe y los componentes). este modo me permite ahorrar memoria y me facilita corregir errores. en vez de hacer un ejecutable que tenga la aplicacion entrea mejor la divido: Pongo el ejecutable y luego las otras partes del programa en dll's. si alguna parte del programa luego falla solo tendria que reparar el dll que tiene el problema y asi no tengo que compilar la aplicacion completa y mis clientes en vez de tener que reinstalar la aplicacion para corregir los errores solo tendrian que instalar la nueva vercion del dll correspondiente (Supongo que toda esta parrafada ya todos la conocen, la pongo solo para que me entiendan bien). entonces Cual es el problema??

El problema:
+++++++++++

Supongamos que yo tengo una aplicacion que se conforma por un exe y un dll. luego algun cliente mio encuentra algun error en el programa y yo me doy cuenta que el error se encuentra en el dll. pues corrijo el error, ya tengo la dll nueva, pero cuando la copio junto al exe para que funcione todo bien obtengo este error al iniciar la aplicacion: "Automation error" es decir, el ejecutable ya no reconoce la dll.

aun cuando yo no cambie nada en el dll, con el simple hecho de compilarlo nuevamente ya el exe no lo reconoce, con lo cual tengo que compilar nuevamente el exe (Aunque el no tiene problemas) y el dll.

Alguien sabe como puedo hacer que el exe siga trabajando aunque el dll sea una nueva vercion?? cabe destacar que las referencias al dll yo las hago por el menu de visual basic Proyecto>Referencias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con DLL's (Muy urgente!!!)

Publicado por Christian (675 intervenciones) el 27/04/2005 02:03:42
A que te refieres con:
"ya tengo la dll nueva, pero cuando la COPIO junto al exe para que funcione "
Cabe mencionar que cuando uno modifica una DLL es mejor DESregistrarla desde con REGSVR -U y luego eliminar los Keys desde el Regedit, luego de eso volverla a Registrar como una DLL nueva.

No funciona copiando y chancando una DLL que ya existe.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con DLL's (Muy urgente!!!)

Publicado por Juan de jesus (12 intervenciones) el 27/04/2005 03:29:25
Hola, grasias por responder.

A lo que me refiero es a que si tengo un una aplicacion compuesta por un dll y un exe y por algun motivo compilo nuevamente el dll ya el exe no es compatible con el dll. para que sea compatible tengo que compilar tambien el exe. segun entiendo es porque al compilar nuevamente el dll su vercion cambia con lo cual el exe deja de reconocer la dll. lo que queria saber es como hacer que el exe siga utilizando la dll aunque esta alla cambiado de vercion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con DLL's (Muy urgente!!!)

Publicado por Esteban (1144 intervenciones) el 27/04/2005 06:27:24
El problema descrito es uno común cuando trabajas con DLLs pero eso se corrige compilando la nueva DLL en un modo que se llama "Compatibilidad Binaria", la cual es una opción dentro de las propiedades del proyecto, esta opción la puedes encontrar en la pestaña de "Componente", luego está la opción de "Compatibilidad de Versión", solo debes seleccionar la compatibilidad binaria y la ruta de la DLL que se creó la primera vez.

Luego, el problema no acaba ahí, en ocaciones, debes afectar mucho la estructura de la DLL, cuando esto ocurre es bueno recompilar el EXE también cuando se trata de valores que hay que enviar o recibir de la DLL.

Cuando el cambio estructural no afecta al EXE directamente pero se pierde de alguna forma la compatibilidad binaria, ocurre algo similar, para eso a mí no me gusta utilizar las referencias dentro del proyecto, incluso las trato de eliminar por completo, en vez de instanciar el objeto utilizando:
set obj = new objeto, uso la instrucción:
set obj = CreateObject("mi_dll.objeto"), de esta forma la aplicación tomará la última versión REGISTRADA no copiada simplemente que está en tu sistema.

Yo trabajo demasiado con ADO y en ocasiones existen máquinas con ADO 2.5 otras con 2.6 y así la variedad de versiones, por eso no lo uso como referencia y más bien utilizo la forma que te comenté, esto hace que mi aplicación utilice la última versión instalada de ADO sin tener problemas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con DLL's (Muy urgente!!!)

Publicado por Juan de jesus (12 intervenciones) el 27/04/2005 15:55:17
Hombre me salvaste el dia, eres mi heroe!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar