Regsvr32: que é e como rexistrar DLLs

Como rexistrar e cancelar un ficheiro DLL con Regsvr32.exe

Regsvr32 é unha ferramenta de liña de comandos en Windows que significa Microsoft Register Server . Úsase para rexistrar e cancelar os controis de Vinculación e incrustación de obxectos (OLE) como ficheiros .DLL e arquivos ActiveX Control .OCX.

Cando regsvr32 rexistra un ficheiro DLL, a información sobre os seus ficheiros de programa asociados engádese ao Rexistro de Windows . Son aquelas referencias que outros programas poden acceder no rexistro para entender onde están os datos do programa e como interactuar con el.

É posible que deba rexistrar un ficheiro DLL se está a ver un erro de DLL no seu computador. Explicámosche como facelo a continuación.

Como rexistrar e desregular un arquivo DLL

Se as referencias no Rexistro de Windows que fan referencia ao ficheiro DLL de algunha maneira son eliminadas ou corrompidas, os programas que precisan usar ese arquivo DLL poden deixar de funcionar. É cando esta asociación co rexistro está roto para que se rexistre un arquivo DLL.

O rexistro dun ficheiro DLL realízase normalmente reinstalando o programa que o rexistrou en primeiro lugar. Ás veces, con todo, pode ter que rexistrar o ficheiro DLL de xeito manual, a través do símbolo do sistema .

Consello: vexa como abrir o símbolo do sistema se non está seguro de como atopalo.

Esta é a forma correcta de estruturar un comando regsvr32:

regsvr32 [/ u] [/ n] [/ i [: cmdline]]

Por exemplo, debería introducir este primeiro comando para rexistrar un ficheiro DLL denominado myfile.dll ou o segundo para rexistralo:

regsvr32 myfile.dll regsvr32 / u myfile.dll

Outros parámetros que pode usar con regsvr32 pódense ver na páxina Regsvr32 de Microsoft.

Nota: Non se poden rexistrar todas as DLL con só ingresar o comando arriba nun aviso de comando. Podería ter que primeiro pechar o servizo ou o programa que está a usar o ficheiro.

Como corrixir erros comúns de Regsvr32

Aquí tes un erro que podes ver ao tentar rexistrar un arquivo DLL:

O módulo foi cargado pero a chamada a DllRegisterServer fallou co código de erro 0x80070005.

Isto xeralmente é un problema de permiso. Se executar un símbolo de comandos elevado aínda non lle permite rexistrar o ficheiro DLL, o propio ficheiro podería estar bloqueado. Verifique a sección Seguridade da páxina Xeral na xanela Propiedades do ficheiro.

Outro problema posible podería ser que non teña os permisos correctos para usar o ficheiro.

Unha mensaxe de erro semellante está redactada como a seguinte. Este erro normalmente significa que a DLL non se usa como COM DLL para calquera aplicación no computador, o que significa que non hai necesidade de rexistralo.

O módulo foi cargado pero non se atopou o DllRegisterServer de punto de entrada.

Aquí hai outra mensaxe de erro regsvr32:

Non se puido cargar o módulo. Asegúrese de que o binario se almacena na ruta especificada ou o depila para comprobar se hai problemas co ficheiro binario ou dependente .DLL.

Este erro en particular pode deberse a unha dependencia perdida, en cuxo caso pode usar a ferramenta Dependency Walker para ver unha lista de todas as dependencias que require o ficheiro DLL. É posible que faltes que necesites para que a DLL sexa rexistrarse correctamente.

Ademais, asegúrese de que a ruta do ficheiro DLL está escrito directamente. A sintaxe do comando é moi importante; pode producirse un erro se non se introduce correctamente. Algúns ficheiros DLL poden necesitar ter a súa localización rodeada en presupostos como "C: \ Users \ User Administrator \ Programs \ myfile.dll".

Vexa a sección "Regsvr32 Mensaxes de erro" deste artigo de Soporte de Microsoft para outras mensaxes de erro e explicacións sobre o que lles causa.

Onde está gardada Regsvr32.exe?

As versións de Windows de 32 bits (XP e máis recentes) engaden a ferramenta Microsoft Register Server ao sistema % systemroot% \ System32 \ cando se instala por primeira vez Windows.

As versións de 64 bits de Windows almacenan o ficheiro regsvr32.exe non só alí pero tamén en % systemroot% \ SysWoW64 \.