¿como funciona una libreria dll en windows?

Dll significa compartir, compartir el mismo codigo entre programas.

Ejemplo para entender como funcionan las librerias dll y como estan relacionadas con todo el sistema operativo.

Pongamos un par de comparaciones e ilustraciones:

Ejemplo: Existen estuches para guardar discos de CD/DVD, existen en presentaciones para guardar un solo CD/DVD en un solo estuche.

Tambien existen para guardar hasta 20 CD/DVD en un solo estuche, la pregunta es: ¿como se ahorra más espacio? ¿guardando cada CD/DVD en un estuche por separado ó mejor guardando todos los discos en un solo estuche? la respuesta es más que obvia: Se ahorra espacio si se usa un solo estuche para los 20 CDs.

Lo mismo ocurre con las librerias Dll, los archivos .DLL equivalen a el estuche para 20 discos de CDs y los discos CDs equivalen a los programas que comparten la misma .DLL

Los archivos Dll contienen funcionalidad y recursos que utilizan otras aplicaciones.

Varios archivos ejecutables .exe pueden usar recursos de un mismo archivo Dll, eso permite reducir el tamaño en Bites de los ejecutables.

Como en una casa-habitacion, si son 5 personas las que viven en la casa-habitacion, no es necesario que cada quien tenga una cocina, ¿mejor porque no comparten todos la misma cocina y el mismo baño?

¿acaso no es más practico compartir el mismo comedor y el mismo baño? ¿suena absurdo que si el total de habitantes en una casa es de 5, seria prudente que hubiera 5 baños, 5 cocinas y 5 comedores?

Pongamos una nueva ilustracion con el proposito de entender el funcionamiento de las librerias .DLL: Imaginemos una pizza que rinde para 8 personas, es entonces logico concluir que cada quien va a tomar su porcion de la pizza.

Archivos dll
Archivos dll

¿Que no me crees?  te pongo las pruebas en la mano: Si investigas un poco con el programa de software de system explorer allí se puede ver claramente que cada proceso esta usando varios archivos .DLL

Ademas con system explorer se puede observar con absoluta claridad que cada libreria .Dll es usada por varios procesos al mismo tiempo. (NOTA: System explorer es una alternativa al administrador de tareas de windows)

Lo mismo ocurre con los archivos .DLL, la pizza es como si fuera una libreria .DLL y las personas que toman su porcion equivalen a los programas ejecutables que toman lo que necesitan de la pizza, en este caso los programas toman su porcion ó lo que necesitan de el archivo .DLL

  • Segun wikpedia algunas ventajas de los archivos dll son por ejemplo:
  • Reducen el tamaño de los archivos ejecutables
  • Pueden estar compartidas entre varias aplicaciones
  • Facilitan la gestión y aprovechamiento de la memoria del sistema
  • Brindan mayor flexibilidad frente a cambios

Sin embargo, las bibliotecas de enlace dinamico mejor conocidas como archivos Dll, no son todo felicidad, tambien puede ocrrir que una dll no se registre correctamente, algun programa borre una dll y los efectos inmediatos son inestabilidad del sistema operativo.