¿Qué son los archivos DLL y por qué falta uno de mi PC?
Cuando recibe un error que dice que Windows no pudo encontrar un archivo DLL en particular, puede ser muy tentador descargar el archivo de uno de los muchos sitios DLL que existen. He aquí por qué no deberías.
¿Qué son los DLL??
Antes de comenzar a explicar por qué no debe descargar los archivos de Dynamic Link Library (DLL) de Internet, primero veamos qué son los archivos DLL. Un archivo DLL es una biblioteca que contiene un conjunto de código y datos para llevar a cabo una actividad particular en Windows. Luego, las aplicaciones pueden llamar a esos archivos DLL cuando necesitan que se realice esa actividad. Los archivos DLL son muy parecidos a los archivos ejecutables (EXE), excepto que los archivos DLL no se pueden ejecutar directamente en Windows. En otras palabras, no puede hacer doble clic en un archivo DLL para ejecutarlo de la misma manera que lo haría con un archivo EXE. En su lugar, los archivos DLL están diseñados para ser llamados por otras aplicaciones. De hecho, están diseñados para ser llamados por múltiples aplicaciones a la vez. La parte de "enlace" del nombre de la DLL también sugiere otro aspecto importante. Se pueden vincular varias DLL para que cuando se llama a una DLL, también se llame a una cantidad de otras DLL al mismo tiempo.
Windows hace un uso extensivo de DLL, como un recorrido por el C: \ Windows \ System32
carpeta te puede decir. Como ejemplo de lo que estamos hablando, consideremos el archivo del sistema de Windows "comdlg32.dll". Este archivo, también conocido como Biblioteca de cuadros de diálogo comunes, contiene código y datos para crear muchos de los cuadros de diálogo comunes que se ven en Diálogos de Windows para cosas como abrir archivos, imprimir documentos, etc. Las instrucciones en esta DLL manejan todo, desde recibir e interpretar mensajes destinados al cuadro de diálogo hasta especificar cómo se ve el cuadro de diálogo en su pantalla. Obviamente, varias aplicaciones pueden llamar a este DLL al mismo tiempo, de lo contrario no podría abrir un cuadro de diálogo (como el que se muestra a continuación) en más de una aplicación a la vez.
Las DLL permiten modular y reutilizar el código, lo que significa que los desarrolladores no tienen que dedicar tiempo a escribir código desde cero para realizar funciones comunes o comunes. Y aunque los desarrolladores crearán sus propios archivos DLL para instalarlos con sus aplicaciones, la gran mayoría de los archivos DLL llamados por aplicaciones en realidad están empaquetados con Windows o con paquetes adicionales, como Microsoft .NET Framework o Microsoft C ++ Redistributables. La otra gran ventaja de modularizar el código de esta manera es que las actualizaciones son más fáciles de aplicar a cada DLL en lugar de a una aplicación completa, especialmente cuando esas DLL no provienen del desarrollador de la aplicación. Por ejemplo, cuando Microsoft actualiza ciertas DLL en su .NET Framework, todas las aplicaciones que usan esas DLL pueden aprovechar inmediatamente la seguridad o funcionalidad actualizadas.
Los DLL descargados pueden estar desactualizados
Entonces, con un poco de comprensión de los archivos DLL en nuestros cinturones, ¿por qué no descargarlos de Internet cuando falta uno de su sistema??
El problema más común con el que se encuentran las DLL descargadas es que están desactualizadas. Muchos de los sitios DLL obtienen sus DLL simplemente subiéndolos desde sus propias computadoras o las de sus usuarios. Probablemente puedas ver el problema ya. La mayoría de estos sitios solo desean su tráfico, y una vez que se carga un archivo DLL, tienen pocos incentivos para garantizar que el archivo se mantenga actualizado. Agregue a esto que los proveedores no suelen lanzar DLL actualizadas al público como archivos individuales, y puede ver que incluso los sitios que tratar mantener los archivos actualizados no es probable que tenga mucho éxito.
También existe el problema adicional de que las DLL normalmente están integradas en paquetes. Una actualización de una DLL en un paquete suele ir acompañada de actualizaciones de otras DLL relacionadas en el mismo paquete, lo que significa que incluso en el improbable caso de que obtenga un archivo DLL actualizado, no obtendrá archivos relacionados que también tengan sido actualizado.
Los DLL descargados pueden ser infectados
Aunque menos común, un problema potencialmente mucho peor es que las DLL que descarga de fuentes distintas al proveedor a veces se pueden cargar con virus u otro malware que puede infectar su PC. Esto es particularmente cierto en los sitios que no son muy cuidadosos acerca de dónde obtienen sus archivos. Y no es que esos sitios vayan a hacer todo lo posible para informarle sobre sus fuentes de riesgo. La parte realmente aterradora es que si descarga un archivo DLL infectado, corre el riesgo, por la naturaleza misma de los archivos DLL, que le otorga un acceso más profundo al archivo que un archivo infectado normal..
La buena noticia aquí es que una buena aplicación antivirus en tiempo real puede detectar estos archivos DLL infectados antes de que realmente se guarden en su sistema y evitar que causen daños. Aún así, debes recordar que incluso un gran programa antivirus puede no brindarte una protección perfecta. Si tienes la costumbre de descargar archivos riesgosos, es probable que te alcancemos en algún momento. Es mejor simplemente evitar estos sitios DLL.
Probablemente no resuelvan tu problema de todos modos
Si bien es posible que solo se haya corrompido o eliminado un solo archivo DLL en su PC, es más probable que otras DLL o archivos de aplicaciones relacionadas también estén dañados o no existan. La razón por la que recibe un error sobre un archivo en particular es que es el primer error que encontró una aplicación antes de fallar y simplemente no se le notifica del resto. Esto puede ser cierto sin importar la causa del problema..
¿Por qué podrían faltar o estar dañados los DLL? Puede ser que otra aplicación o actualización errante haya intentado reemplazar el archivo y haya fallado, o lo haya reemplazado con una copia desactualizada. Puede ser un error en la instalación de su aplicación principal o en un paquete como .NET. Incluso es posible que tenga otros sectores defectuosos en el disco duro, como por ejemplo, problemas que impiden que el archivo se cargue correctamente.
¿Cómo puedo arreglar mi error DLL?
La única forma de asegurarte de obtener una DLL estable, actualizada y limpia es obtenerla a través de la fuente desde la cual se originó. Típicamente, esa fuente será:
- Sus medios de instalación de Windows. Es poco probable que pueda simplemente copiar un archivo DLL desde su medio de instalación, pero tiene una opción rápida para intentar antes de hacer algo tan drástico como volver a llamar a Windows. Puede usar la herramienta de protección de recursos de Windows (a menudo denominada comprobador de archivos del sistema, o SFC), que buscará y reparará los archivos del sistema dañados o faltantes en Windows. Debe tener sus medios de instalación a mano cuando ejecute la herramienta, en caso de que necesite copiar un archivo desde allí. (Si no tiene un disco de instalación, puede descargar uno aquí).
- Los paquetes de Microsoft .NET Framework. Varias versiones de .NET se instalan automáticamente junto con Windows, y muchas aplicaciones también instalan archivos de esos paquetes. Puede leer nuestro artículo sobre .NET Framework, que también tiene algunos consejos para encontrar y reparar problemas asociados..
- Varios paquetes redistribuibles de Microsoft Visual C ++. Dependiendo de las aplicaciones que use, puede tener varias versiones de C ++ Redistributable instaladas en su PC. A veces puede ser difícil definir cuál es el culpable, pero un buen lugar para comenzar es nuestro artículo sobre C ++ Redistributables, que también incluye varios pasos de solución de problemas y enlaces donde puede descargar las versiones más actualizadas directamente de Microsoft..
- La aplicación que viene con la DLL. Si la DLL se instaló junto con una aplicación en lugar de ser parte de un paquete separado, lo mejor que puede hacer es reinstalar la aplicación. Algunas aplicaciones le permiten realizar una reparación en lugar de una reinstalación completa. Cualquiera de las opciones debería funcionar, ya que una reparación generalmente busca archivos faltantes en las carpetas de instalación.
Si todo esto falla, puede comunicarse con el proveedor de la aplicación y solicitar una copia de un archivo DLL individual. Algunas empresas están abiertas a esta solicitud; algunos no lo son Si se encuentra con una empresa que no proporciona archivos individuales, al menos pueden ofrecer otras sugerencias para resolver su problema..