Como registrar una DLL

Cómo registrar una DLL en cualquier versión de Windows – guía universal con regsvr32

Qué es el registro de una DLL y por qué es necesario

El registro de una Dynamic Link Library (DLL) es un proceso que añade información sobre esa biblioteca al registro del sistema operativo, permitiendo que otros programas sepan cómo localizarla y utilizarla correctamente. Esta operación es fundamental para las bibliotecas COM (Component Object Model) y los controles ActiveX, que necesitan estar registrados antes de que cualquier aplicación pueda hacer uso de sus funciones. Sin un registro adecuado, los programas no podrán comunicarse con estos componentes aunque los archivos estén presentes en el disco duro.

La herramienta encargada de gestionar este proceso en todas las versiones modernas de Windows es Regsvr32.exe (Register Server), una utilidad incluida de serie con el sistema operativo desde Windows 95 hasta Windows 11. Este ejecutable permite añadir o eliminar entradas del registro de forma rápida y sencilla, invocando internamente las funciones DllRegisterServer y DllUnregisterServer que deben exportar las DLL diseñadas para ser registradas.

No todas las DLL necesitan este proceso. Muchas bibliotecas son simplemente archivos de código compartido que cualquier programa puede cargar directamente sin necesidad de registro. Solo aquellas que exponen clases COM, controles ActiveX u objetos OLE requieren este paso adicional. Si intentas registrar una DLL que no está diseñada para ello, la herramienta mostrará un mensaje de error indicando que el punto de entrada no se encontró.

¿Quieres solucionar errores de componentes no registrados en tu versión de Windows, ya sea antigua o moderna? A continuación encontrarás todos los pasos para conseguirlo, con las particularidades de cada sistema operativo.

Qué necesitas saber antes de empezar

Antes de proceder con el registro de una DLL, es fundamental que identifiques si realmente necesitas realizar este proceso. La mayoría de los programas instalan y registran automáticamente sus componentes durante la instalación. Solo en casos excepcionales (reparación de una aplicación dañada, instalación manual de un control ActiveX, o sustitución de un archivo corrupto) será necesario hacerlo manualmente.

Privilegios administrativos: A partir de Windows XP, Microsoft implementó un esquema de seguridad más restrictivo que impide a los usuarios estándar escribir en el registro o modificar archivos en carpetas protegidas como System32. Por lo tanto, en Windows XP, Vista, 7, 8, 10 y 11, es obligatorio ejecutar el Símbolo del sistema como administrador. En Windows 95, 98 y Me, este requisito no existe, ya que no implementaban el mismo modelo de permisos.

Arquitectura del sistema (32 vs 64 bits): En sistemas de 64 bits existen dos versiones de regsvr32.exe. La versión de 64 bits (en C:WindowsSystem32) solo puede registrar DLL de 64 bits. La versión de 32 bits (en C:WindowsSysWOW64) solo puede registrar DLL de 32 bits. Intentar registrar una DLL de 32 bits con la versión de 64 bits producirá un error. En sistemas de 32 bits, solo existe una versión y todo se gestiona en System32.

Versiones antiguas (Windows 95, NT 4.0): En estos sistemas, la herramienta se llamaba REGSVR.EXE o Regsvr16.exe para componentes de 16 bits. Los comandos y ubicaciones varían ligeramente respecto a las versiones modernas.

Cómo registrar una DLL en Windows (métodos universales)

El proceso de registro sigue la misma estructura básica en todas las versiones de Windows desde Windows 98 hasta Windows 11, aunque con pequeñas variaciones en la forma de acceder al Símbolo del sistema con privilegios elevados.

Método 1: Registrar una DLL desde el Símbolo del sistema (recomendado)

Este es el método estándar y más utilizado en todas las versiones modernas de Windows.

Paso 1: Abrir el Símbolo del sistema como administrador

  • Windows 10, 11, 8.1 y 8: Haz clic derecho en el botón Inicio y selecciona Símbolo del sistema (Administrador) o Terminal (Administrador). También puedes buscar cmd en el menú Inicio, hacer clic derecho sobre el resultado y elegir Ejecutar como administrador.
  • Windows 7 y Vista: Haz clic en Inicio, escribe cmd en el cuadro de búsqueda, haz clic derecho sobre cmd.exe y selecciona Ejecutar como administrador.
  • Windows XP: Inicia sesión con una cuenta que tenga permisos de administrador. Luego haz clic en Inicio > Ejecutar, escribe cmd y pulsa Enter.
  • Windows 98 y Me: Haz clic en Inicio > Ejecutar, escribe command y pulsa Enter.

Paso 2: Ejecutar el comando de registro

En la ventana del Símbolo del sistema, escribe el siguiente comando y pulsa Enter:

regsvr32 rutacompletadelarchivo.dll

Por ejemplo, para registrar una DLL llamada msxml.dll ubicada en C:\Windows\System32:

regsvr32 C:\Windows\System32\msxml.dll
Cómo registrar una DLL en cualquier versión de Windows

Paso 3: Confirmar el resultado

Si el registro es exitoso, aparecerá un cuadro de diálogo con el mensaje DllRegisterServer in [ruta] succeeded (El registro del servidor se ha completado correctamente). Haz clic en Aceptar.

Método 2: Registrar una DLL directamente desde Ejecutar

Si no deseas abrir el Símbolo del sistema, puedes ejecutar el registro directamente desde el cuadro Ejecutar.

  1. Pulsa Windows + R para abrir Ejecutar.
  2. En el cuadro Abrir, escribe directamente el comando completo: regsvr32 rutacompletadelarchivo.dll
  3. Pulsa Enter o haz clic en Aceptar.
  4. Espera a que aparezca el mensaje de confirmación.

Nota importante para Windows Vista, 7, 8, 10 y 11: Si no has ejecutado el Símbolo del sistema como administrador, este método puede fallar con el error 0x80070005 (acceso denegado). En ese caso, utiliza el Método 1.

Método 3: Arrastrar y soltar (drag and drop)

Este método es útil si prefieres una interfaz gráfica y no te sientes cómodo escribiendo comandos.

  1. Abre dos ventanas del Explorador de archivos.
  2. En la primera ventana, navega hasta la ubicación de regsvr32.exe:
    • En sistemas de 32 bits: C:WindowsSystem32
    • En sistemas de 64 bits (para DLL de 64 bits): C:WindowsSystem32
    • En sistemas de 64 bits (para DLL de 32 bits): C:WindowsSysWOW64
  3. En la segunda ventana, navega hasta la carpeta donde se encuentra la DLL que deseas registrar.
  4. Arrastra el archivo DLL desde la segunda ventana y suéltalo sobre el archivo regsvr32.exe en la primera ventana.
  5. Aparecerá el mensaje de confirmación.

Método 4: Registrar múltiples DLL a la vez

Si necesitas registrar todos los archivos DLL contenidos en una carpeta, puedes utilizar el siguiente comando en el Símbolo del sistema:

FOR %1 IN (*.DLL) DO REGSVR32 /S %1

Este comando recorre todos los archivos con extensión .dll en el directorio actual y los registra uno por uno en modo silencioso (sin mostrar mensajes emergentes).

Parámetros y opciones de Regsvr32

La herramienta regsvr32.exe incluye varias opciones de línea de comandos para situaciones específicas:

ParámetroFunciónEjemplo
/uDesregistra el servidor (elimina la entrada del registro)regsvr32 /u midll.dll
/sModo silencioso: no muestra ningún cuadro de mensajeregsvr32 /s midll.dll
/iLlama a la función DllInstall del archivoregsvr32 /i midll.dll
/i con /uLlama a la función de desinstalaciónregsvr32 /u /i midll.dll
/nNo llama a DllRegisterServer (debe usarse con /i)regsvr32 /n /i midll.dll

Particularidades según la versión de Windows

Sistema operativoUbicación de regsvr32Consideraciones especiales
Windows 95 (original)No existeActualizar a OSR2 o usar REGSVR.EXE de 16 bits
Windows 95 OSR2, 98, 98 SE, MeC:WindowsSystemNo requiere permisos de administrador
Windows NT 4.0C:WinNTSystem32Usar regsvr32.exe de 32 bits
Windows 2000, XP, VistaC:WindowsSystem32Requiere permisos de administrador desde XP
Windows 7, 8, 10, 11 (32 bits)C:WindowsSystem32Ejecutar como administrador
Windows 7, 8, 10, 11 (64 bits)C:WindowsSystem32 (64 bits) y C:WindowsSysWOW64 (32 bits)Usar la versión adecuada según la DLL

Problemas frecuentes y cómo resolverlos

Error 0x80070005 – Acceso denegado

Este error aparece en Windows XP y versiones posteriores cuando se intenta registrar una DLL sin privilegios administrativos suficientes. La causa es que el sistema impide modificar el registro y las carpetas del sistema a cuentas sin permisos elevados. La solución consiste en cerrar el Símbolo del sistema, volver a abrirlo como administrador (clic derecho > Ejecutar como administrador) y ejecutar nuevamente el comando.

Error «LoadLibrary failed» o «No se encuentra el módulo»

Este error indica que regsvr32 no ha podido cargar el archivo DLL especificado. La causa más probable es que la ruta que has escrito sea incorrecta o que el archivo no exista en esa ubicación. También puede deberse a que la DLL depende de otras bibliotecas que no están presentes en el sistema. Para resolverlo, verifica la ortografía de la ruta, asegúrate de que el archivo existe, y comprueba que todas las dependencias de la DLL están instaladas.

Error «DllRegisterServer entry point not found»

Este error significa que la DLL que intentas registrar no está diseñada para ser registrada porque no exporta la función DllRegisterServer. La causa es que estás intentando registrar una biblioteca que no es un control COM o ActiveX. La solución es no registrar ese archivo; si un programa lo necesita, lo cargará directamente sin necesidad de registro. Si estás seguro de que la DLL debería poder registrarse, es posible que el archivo esté dañado.

Error al registrar DLL de 32 bits en sistema de 64 bits

En sistemas de 64 bits, intentar registrar una DLL de 32 bits con la versión de 64 bits de regsvr32 produce un error de incompatibilidad. La causa es que cada versión de regsvr32 solo puede cargar DLL de su misma arquitectura. Para resolverlo, copia la DLL de 32 bits a C:WindowsSysWOW64 y ejecuta el registro usando la versión de 32 bits: C:WindowsSysWOW64regsvr32.exe C:WindowsSysWOW64tudll.dll.

El mensaje de error «Mismatched DLL version» aparece

Este error indica que la versión de la DLL no es compatible con la versión de Windows que estás utilizando. Por ejemplo, una DLL diseñada para Windows 10 puede no funcionar en Windows 98. La solución es localizar una versión de la DLL específicamente compilada para tu versión de Windows o actualizar el programa que requiere la DLL a una versión compatible con tu sistema operativo.

Consejos para sacar más partido al registro de DLL

Una de las tareas más útiles que puedes realizar con regsvr32 es la reparación de componentes de Internet Explorer. Si tu navegador presenta errores al mostrar páginas web o al ejecutar contenido interactivo, puedes registrar de nuevo las bibliotecas asociadas a IE. En versiones modernas de Windows (10 y 11), abre el Símbolo del sistema como administrador y ejecuta estos comandos uno tras otro:

regsvr32 actxprxy.dll
regsvr32 shdocvw.dll
regsvr32 mshtml.dll
regsvr32 urlmon.dll
regsvr32 browseui.dll
regsvr32 oleaut32.dll
regsvr32 jscript.dll
regsvr32 vbscript.dll

Este proceso restablece las configuraciones de los componentes web sin necesidad de reinstalar el navegador completo.

Otro consejo práctico es crear un archivo por lotes (.bat) para registrar múltiples DLL de una sola vez. Abre el Bloc de notas y escribe una línea por cada comando de registro. Por ejemplo:

@echo off
regsvr32 /s C:WindowsSystem32actxprxy.dll
regsvr32 /s C:WindowsSystem32shdocvw.dll
regsvr32 /s C:WindowsSystem32mshtml.dll
echo Proceso completado
pause

Guarda el archivo con un nombre como registrar_componentes.bat en el escritorio. La opción /s (silenciosa) evita que aparezcan mensajes de confirmación uno por uno. Para ejecutarlo, haz clic derecho sobre el archivo y selecciona Ejecutar como administrador.

Además, si necesitas desregistrar una DLL antes de actualizarla (práctica recomendada para evitar conflictos), utiliza el parámetro /u. Por ejemplo: regsvr32 /u C:WindowsSystem32midll.dll. Una vez desregistrada, elimina el archivo antiguo, copia la nueva versión y vuelve a registrarla con regsvr32.

Compatibilidad entre versiones de Windows

La herramienta Regsvr32.exe está presente en todas las versiones de Windows desde Windows 95 OSR2 hasta Windows 11, aunque su ubicación y comportamiento han variado ligeramente a lo largo del tiempo.

Windows 95, 98, Me: La herramienta se encuentra en C:WindowsSystem. No requiere permisos elevados. En Windows 95 original (sin OSR2), la herramienta no existe; es necesario actualizar el sistema o utilizar REGSVR.EXE de 16 bits.

Windows NT 4.0, 2000, XP, Vista: La ubicación cambia a C:WindowsSystem32. A partir de Windows XP, se requiere ejecutar como administrador. Windows NT 4.0 incluye regsvr32.exe a partir del Service Pack 5.

Windows 7, 8, 10, 11: En sistemas de 64 bits existen dos versiones: la de 64 bits en C:WindowsSystem32 y la de 32 bits en C:WindowsSysWOW64. La denominación puede resultar confusa (System32 contiene archivos de 64 bits, SysWOW64 contiene archivos de 32 bits), pero es importante respetar esta estructura para el registro cruzado.

Preguntas frecuentes

¿El registro de DLL funciona igual en Windows 10 y Windows 11?

Sí, funciona exactamente igual. La herramienta Regsvr32.exe está presente en ambas versiones con la misma sintaxis y opciones. La única diferencia puede ser el método para abrir el Símbolo del sistema como administrador, pero los comandos de registro son idénticos.

¿Necesito permisos de administrador para registrar una DLL?

Depende de la versión de Windows. En Windows 95, 98 y Me, no necesitas permisos especiales. En Windows XP y versiones posteriores (Vista, 7, 8, 10, 11), es obligatorio ejecutar el Símbolo del sistema como administrador. De lo contrario, recibirás el error 0x80070005 (acceso denegado).

¿Qué hago si no encuentro el archivo regsvr32.exe en mi sistema?

Si al intentar ejecutar regsvr32 recibes un error indicando que el archivo no se encuentra, es posible que tu instalación de Windows esté dañada o incompleta. Primero, busca manualmente el archivo en C:WindowsSystem32 (o C:WindowsSysWOW64 en sistemas de 64 bits). Si no está allí, puedes restaurarlo utilizando la herramienta System File Checker (sfc /scannow) en Windows 10, 8, 7 y Vista, o extrayéndolo del CD de instalación en versiones más antiguas.

¿Puedo registrar una DLL que está en un CD o en una unidad externa sin copiarla?

Técnicamente sí, pero no es recomendable. El registro añade la ruta exacta al archivo en el registro del sistema. Si después retiras el CD o la unidad externa, Windows no podrá encontrar la DLL cuando un programa la necesite, lo que causará errores. Es mejor copiar primero el archivo DLL al disco duro (por ejemplo a C:WindowsSystem32 o a la carpeta del programa correspondiente) y luego registrarlo desde esa ubicación.

¿Existe alguna alternativa gráfica a Regsvr32 para quienes no usan la línea de comandos?

Sí, existen varias herramientas de terceros con interfaz gráfica que facilitan el registro y desregistro de DLL y OCX. Algunas opciones populares son RegDllView de NirSoft, DLL Archive y Registrar DLL/OCX Tool. Estas herramientas muestran todas las DLL registradas en el sistema y permiten registrar nuevas con solo unos clics, sin necesidad de escribir comandos manualmente.