JBeExJBeEx

Como registrar una DLL

Como registrar una DLL

Registrar una DLL es añadir al registro de Windows la información que necesitan los programas para encontrar un componente COM o un control ActiveX (archivos .dll u .ocx). Se hace con regsvr32, que viene incluido en todas las versiones de Windows. Te explicamos cuándo hace falta, cómo hacerlo en Windows 11, 10, 8 y 7 y qué significan los errores más habituales.

Antes de empezar

  • No todas las DLL se registran. Solo las que contienen componentes COM o ActiveX. La mayoría son simples bibliotecas de código que los programas cargan directamente; si intentas registrarlas, verás el error del punto de entrada que se explica más abajo.
  • Normalmente lo hace el instalador. Registrar a mano solo hace falta para reparar un programa o instalar un componente suelto. Si te falta una DLL, lo correcto suele ser reinstalar el programa que la usa (tienes cómo hacerlo en recuperar o reparar archivos DLL).
  • No descargues DLL sueltas de webs de «descarga de DLL». Suelen ser de otra versión, no arreglan el problema y pueden traer malware.

Cómo registrar una DLL

  1. Abre el Símbolo del sistema como administrador: pulsa Inicio, escribe cmd, haz clic derecho sobre Símbolo del sistema y elige Ejecutar como administrador. En Windows 10 y 11 también vale Terminal (Administrador) desde el clic derecho en Inicio.
  2. Escribe regsvr32 seguido de la ruta completa de la DLL, entre comillas si tiene espacios, y pulsa Intro:
regsvr32 "C:\Program Files\Programa\componente.dll"
Registrar una DLL con regsvr32 en el Símbolo del sistema

Si todo va bien, aparecerá una ventana con el mensaje «DllRegisterServer en … se realizó correctamente». Pulsa Aceptar.

También puedes hacerlo sin abrir la consola: pulsa Win + R, escribe el mismo comando y, en lugar de Intro, pulsa Ctrl + Mayús + Intro para que se ejecute como administrador. Si pulsas solo Intro, lo más probable es que falle por falta de permisos.

Desregistrar una DLL

Añade /u: regsvr32 /u "C:\Program Files\Programa\componente.dll". Es lo recomendable antes de sustituir un componente por una versión nueva: desregistras el viejo, cambias el archivo y registras el nuevo.

Registrar todas las DLL de una carpeta

Desde la carpeta del programa (con cd), en el Símbolo del sistema como administrador:

for %i in (*.dll) do regsvr32 /s "%i"

Dentro de un archivo .bat hay que escribir %%i en lugar de %i. Úsalo solo en la carpeta de un programa concreto, nunca en System32.

Opciones de regsvr32

  • /u: desregistra la DLL.
  • /s: modo silencioso, sin ventanas de mensaje. Útil en scripts.
  • /i: llama a la función de instalación de la DLL (DllInstall). Con /u, a la de desinstalación.
  • /n: no llama a DllRegisterServer. Se usa junto con /i.

DLL de 32 bits en Windows de 64 bits

En un Windows de 64 bits hay dos regsvr32: el de 64 bits en C:\Windows\System32 y el de 32 bits en C:\Windows\SysWOW64. Sí, los nombres engañan: System32 es la de 64 bits.

Normalmente no tienes que preocuparte: si le pasas una DLL de 32 bits al regsvr32 normal, Windows usa solo la versión de 32 bits. Si aun así da error, llama directamente al de 32 bits:

C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\Programa\componente.dll"

Errores frecuentes

  • Código de error 0x80070005: acceso denegado. El Símbolo del sistema no está abierto como administrador. Ciérralo y ábrelo con Ejecutar como administrador.
  • «No se pudo cargar el módulo» o «LoadLibrary failed»: la ruta está mal escrita, el archivo no existe o falta otra DLL de la que depende. Revisa la ruta y las comillas. Si persiste, reinstala el programa al que pertenece.
  • «No se encontró el punto de entrada DllRegisterServer»: esa DLL no es un componente COM y no se registra. No hay nada que hacer con ella: el programa la usa tal cual.
  • No aparece regsvr32: los archivos del sistema están dañados. Repáralos con SFC y DISM.

En versiones antiguas de Windows

El comando es el mismo desde Windows 98. En Windows XP basta con una cuenta de administrador, sin «Ejecutar como administrador», y el Símbolo del sistema se abre con Inicio → Ejecutar → cmd. En Windows 98 y Me, regsvr32 está en C:\Windows\System y no hacen falta permisos especiales.

Si prefieres una herramienta con ventanas, RegDllView de NirSoft (gratuita) lista los componentes registrados y permite registrar o desregistrar con unos clics.