La Web del Programador: Comunidad de Programadores
 
    Pregunta:  43423 - COMPILAR Y REGISTRAR DLL
Autor:  Julio Cesar Norato
Hola a Todos, les agradezco me ayuden a aclarar la siguiente duda: Realice unos procesos en Visual Basic 6.0 y los compile como archivos DLL, los cuales seran comunes para varios procesos o aplicaciones (.EXE). Todos funciona de maravilla, se hace la instalación y se registran los DLL en Windows XP. Pero al realizar una modificación en algún DLL, y al copiarlo en la máquina de los usuarios, la misma presenta un error de AUTOMATIZACION, y hasta que no realice otra vez el proceso de registrarlo, no se quita el error. EXISTE ALGUNA MANERA DE COMPILAR EL DLL Y COPIARLO SIN NECESIDAD DE VOLVERLOS A REGISTRAR.

Saludos...

Y GRACIAS por su apoyo

  Respuesta:  Daniel Trejo
Por supuesto que si, tienes que utilizar la compatibilidad binaria y solo tendras que reemplazar el DLL en las maquinas, el unico caso en que esto no sucedera es cuando rompes compatibilidad, suerte.

  Respuesta:  Jose Agustin Hernandez M.
Te sugiero cambiar la Compatibilidad de tus DLLs a "Compatibilidad Binaria" en lugar de "Compatiblidad de Proyecto"...

Abre tu proyecto, te vas a Project/"tu proyecto" Properties, y en la ceja de "Component" cambias la compatibilidad de version...

De esta manera, al generar tu DLL, el mismo compilador te avisara cuando el DLL resultante sea lo bastante diferente del anterior como para que debas recompilar tus ejecutables y otros DLLs que dependan de el ... Acepta los mensajes y continua generando tu DLL.

Si no recibes aviso alguno al generar el DLL, esto significa que tus EXes y DLLs que dependen del recien generado DLL no van a tener problema con la nueva version que estas generando.

Cuando recibes el aviso? Por ejemplo, cuando eliminas funciones o SUBs publicas previamente generadas en el DLL (pues se supone que alguno de tus Exes u otros DLLs podrian estarlas utilizando), o cuando modificas las funciones o SUBs (nombre, número o tipo de parámetros, tipo de variable de retorno en el caso de las Funciones)...

Si solo agregas nuevas Funciones o Subs a tu DLL, o modificas funciones o subs solamente en cuanto a su procedimiento interno, no recibiras el aviso de compatibilidad. En el caso de nuevas funciones o subs se asume que ninguno de tus EXEs o DLLs las están utilizando aún.