Qué saber
- Para registrar un archivo DLL myfile.dll, ingrese regsvr32 myfile.dll, y para anular el registro, escriba r egsvr32 /u myfile.dllen la línea de comando.
- Si obtiene un error al intentar registrar un archivo DLL, es posible que no tenga los permisos correctos o que el archivo esté bloqueado.
- Otros errores pueden deberse a una dependencia f altante; si es así, utilice Dependency Walker para ver todas las dependencias que requiere el archivo DLL.
Este artículo explica cómo usar la herramienta de línea de comandos regsvr32 en Windows y cómo corregir algunos errores de regsvr32. Regsvr32 se utiliza para registrar y anular el registro de controles de vinculación e incrustación de objetos (OLE), como archivos DLL y control ActiveX.archivos OCX. Es posible que deba registrar un archivo DLL si ve un error de DLL en su computadora.
Cómo registrar y cancelar el registro de un archivo DLL
Si las referencias en el Registro de Windows que hacen referencia al archivo DLL se eliminan o dañan de alguna manera, los programas que necesitan usar ese archivo DLL pueden dejar de funcionar. Cuando se rompe esta asociación con el registro, se debe registrar un archivo DLL.
El registro de un archivo DLL generalmente se logra reinstalando el programa que lo registró en primer lugar. A veces, sin embargo, es posible que deba registrar el archivo DLL manualmente a través del símbolo del sistema.
Vea nuestro tutorial sobre cómo abrir el símbolo del sistema si no está seguro de cómo encontrarlo.
Esta es la forma correcta de estructurar un comando regsvr32:
regsvr32 [/u] [/n] [/i[:cmdline]
Por ejemplo, ingresaría este primer comando para registrar un archivo DLL llamado myfile.dll, o el segundo para anular su registro:
regsvr32 miarchivo.dll
regsvr32 /u miarchivo.dll
No todas las DLL se pueden registrar simplemente ingresando el comando anterior en un símbolo del sistema. Es posible que primero deba cerrar el servicio o programa que está usando el archivo.
Cómo solucionar errores comunes de Regsvr32
Aquí hay un error que puede ver al intentar registrar un archivo DLL:
El módulo se cargó pero la llamada a DllRegisterServer falló con el código de error 0x80070005.
Esto suele ser un problema de permisos. Si ejecutar un símbolo del sistema elevado aún no le permite registrar el archivo DLL, el archivo en sí podría estar bloqueado. Verifique la sección Seguridad de la pestaña General en la ventana Propiedades del archivo.
Otro posible problema podría ser que no tenga los permisos correctos para usar el archivo.
Un mensaje de error similar está redactado como el siguiente. Este error generalmente significa que la DLL no se está utilizando como una DLL COM para ninguna aplicación en la computadora, lo que significa que no es necesario registrarla.
El módulo se cargó pero no se encontró el DllRegisterServer de punto de entrada.
Aquí hay otro mensaje de error de regsvr32:
El módulo no se pudo cargar. Asegúrese de que el binario esté almacenado en la ruta especificada o depúrelo para comprobar si hay problemas con los archivos binarios o. DLL dependientes. No se pudo encontrar el módulo especificado.
Ese error en particular puede deberse a que f alta una dependencia, en cuyo caso puede usar Dependency Walker para ver una lista de todas las dependencias que requiere el archivo DLL, ya que puede f altar una que debe tener en orden para que la DLL se registre correctamente.
Asegúrese de que la ruta al archivo DLL esté bien escrita. La sintaxis del comando es muy importante; se puede arrojar un error si no se ingresa correctamente.
Es posible que algunos archivos DLL deban tener su ubicación entre comillas como esta:
"C:\Usuarios\Usuario administrador\Programas\miarchivo.dll"
¿Dónde se almacena Regsvr32.exe?
Las versiones de Windows de 32 bits (XP y posteriores) agregan la herramienta Microsoft Register Server a esta carpeta cuando Windows se instala por primera vez: %systemroot%\System32\.
Las versiones de 64 bits de Windows almacenan el archivo regsvr32.exe no solo allí, sino también aquí: %systemroot%\SysWoW64\.