punto proporcionar pero para nombre instalar entrada encontro dllregisterserver debe binario windows com dll

proporcionar - regsvr32 windows 10



¿Qué hace el registro de una DLL? (3)

Sé cómo registrar dlls, pero nunca he estado realmente seguro de por qué lo hago o bajo qué condiciones debe registrarse un dll. ¿Alguien podría explicarme o señalarme alguna documentación?


Lo que comúnmente se conoce como registro DLL es cuando implementa un objeto COM. regsvr32 asegura que se puede crear una instancia del objeto. Cuando, por ejemplo, VBScript utiliza New o CreateObject (), el registro garantiza que COM sepa qué DLL cargar para crear una nueva instancia, ya sea por nombre o por CLSID.

Vea "la explicación del profano" para un (muy) breve resumen.


Simplemente mira el código fuente de regsvr32.exe


Cuando se registra una DLL, se invoca el punto de entrada del método DllRegisterServer en su DLL. De forma similar, DllUnregisterServer se invoca cuando una DLL no está registrada.

Como se describe en este artículo de MSDN :

Indica a un servidor en proceso que cree sus entradas de registro para todas las clases admitidas en este módulo de servidor. Si esta función falla, el estado del registro para todas sus clases es indeterminado.

Para las DLL COM, deberá implementar sus propios métodos de punto de entrada DllRegisterServer y DllUnregisterServer que realizan el registro / DllUnregisterServer del registro según corresponda. El código de ejemplo para DllRegisterServer se puede encontrar here .

El resultado final de registrar una DLL es que todos los CLSID para los componentes en la DLL están registrados en HKEY_CLASSES_ROOT/CLSID . Esto permite que CoCreateInstance encuentre el servidor correcto al crear instancias de objetos COM desde otra DLL o aplicación.

DllUnregisterServer hará lo contrario y eliminará todos los CLSID del registro que DllRegisterServer puso allí.

Puede encontrar más información general sobre DllRegisterServer here .