Design a site like this with WordPress.com
Get started

¿Porqué no se instala una DLL con Regsvr32 /i?

Cogemos y ejecutamos el comando regsrv /i MiDll.dll y patapún: “MiDll.dll was loaded, but de DllInstall entry point was not found. This file can not be registered.” ¬¬ Um WTF?

Una dll debe ser escrita de cierta forma para que se pueda registrar por el comando regsvr32. No es tan sencillo como coger una dll al azar y esperar que funcione. Como ya vimos, el comando regsvr32 necesita un par de cosillas para poder registrar una dll. Si no se ha tenido en cuenta ese tipo de cosas, no se podrá encontrar el punto de entrada para que regsvr32 funcione y obtendremos ese error.

El parámetro /i le dice a regsvr32 que busque  el punto de entrada conocido como DllInstall. Esta función realiza la instalación de la dll, pero como es una función exportada por una Dll, puede hacer cualquier cosa que queramos (o nada en absoluto).

Y es que coger una dll cualquiera e intentar registrarla con regsvr32 es como ir por la calle, encontrarte un caramelo pegado en el suelo, cogerlo, metértelo en la boca y esperar que sepa bien ….

Vamos a ver almas de cántaro. El primer resultado sobre qué hace regsvr32 nos lleva a un artículo de la base de conocimiento de Microsoft que explica qué es lo que hace, incluso contiene un ejemplo que emula a regsrv32 para que podamos depurar nuestra dll.

Espero que sirva.

Juan María Laó Ramos.

Author: Juanma

Bueno, como reza el título de este blog y de las cosas que iré escribiendo ya os hareis una idea de cómo soy.

One thought on “¿Porqué no se instala una DLL con Regsvr32 /i?”

  1. Otra forma de explicarlo es > que RegSvr32 solo instala DLLs COM. Un archivo con extensión Dll no tiene porque ser una dll COM, también puede ser un ensamblado .net, o inclusive un archivo con una foto de mi abuela renombrado como dll. RegSvr32, solo se aplica en escenarios COM y … por favor dejemos de alentar a los escenarios COM !!!

    Saludos

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: