Cuando recibe un error que dice que Windows no pudo encontrar un archivo DLL en particular, puede ser terriblemente tentador descargar el archivo de uno de los muchos sitios DLL que existen. He aquí por qué no deberías.
¿De qué vamos a hablar?
¿Qué son las DLL?
Antes de comenzar sobre por qué no debería descargar archivos de la Biblioteca de vínculos dinámicos (DLL) de Internet, primero echemos un vistazo a 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. Las aplicaciones pueden llamar a esos archivos DLL cuando necesitan que se realice esa actividad. Los archivos DLL se parecen mucho 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 cambio, los archivos DLL están diseñados para ser invocados por otras aplicaciones. De hecho, están diseñados para ser invocadas por múltiples aplicaciones a la vez. La parte de “enlace” del nombre DLL también sugiere otro aspecto importante. Se pueden vincular varias DLL entre sí para que cuando se llama a una DLL, también se llame a varias otras DLL al mismo tiempo.
Windows en sí hace un uso extensivo de DLL, como un recorrido por el C:/Windows/System32
carpeta puede decirle. Como ejemplo de lo que estamos hablando, consideremos el archivo de 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 Windows: cuadros de diálogo para cosas como abrir archivos, imprimir documentos, etc. Las instrucciones de esta DLL controlan todo, desde recibir e interpretar mensajes destinados al cuadro de diálogo hasta especificar cómo se ve el cuadro de diálogo en la pantalla. Obviamente, varias aplicaciones pueden llamar a esta DLL al mismo tiempo, de lo contrario no podría abrir un cuadro de diálogo (como el siguiente) en más de una aplicación a la vez.
Las DLL permiten modularizar y reutilizar el código, lo que significa que los desarrolladores no tienen que pasar tiempo escribiendo código desde cero para realizar funciones mundanas o comunes. Y aunque los desarrolladores crearán sus propias DLL para instalar con sus aplicaciones, la gran mayoría de las DLL llamadas por las aplicaciones en realidad están incluidas 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 determinados archivos DLL en .NET Framework, todas las aplicaciones que usan esos archivos DLL pueden aprovechar inmediatamente la seguridad o la funcionalidad actualizadas.
Las DLL descargadas pueden estar desactualizadas
Entonces, con un poco de comprensión de las DLL en nuestro haber, ¿por qué no descargarlas de Internet cuando falta una en su sistema?
El problema más común con el que se encontrará con las DLL descargadas es que están desactualizadas. Muchos de los sitios DLL que existen obtienen sus DLL simplemente cargándolos desde sus propias computadoras o las de sus usuarios. Probablemente ya pueda ver el problema. La mayoría de estos sitios solo quieren su tráfico, y una vez que se carga una 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 probar para mantener los archivos actualizados no es probable que tenga mucho éxito.
También existe el problema adicional de que las DLL generalmente se integran en los paquetes. Una actualización de una DLL en un paquete a menudo va 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 se hayan actualizado.
Las DLL descargadas pueden estar infectadas
Aunque es menos común, un problema potencialmente mucho peor es que las DLL que descarga de fuentes distintas del proveedor a veces pueden cargarse con virus u otro malware que puede infectar su PC. Esto es particularmente cierto en sitios que no son demasiado cuidadosos sobre dónde obtienen sus archivos. Y no es que esos sitios vayan a hacer todo lo posible para contarle 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, de dar a ese archivo un acceso más profundo de lo que podría obtener un archivo infectado normal.
La buena noticia aquí es que una buena aplicación antivirus en tiempo real generalmente puede detectar estos archivos DLL infectados antes de que se guarden en su sistema y evitar que hagan daño. Aún así, debe recordar que incluso un gran programa antivirus puede no proporcionarle una protección perfecta. Si tienes el hábito de descargar archivos riesgosos, es probable que sea probable que para alcanzarte en algún momento. Es mejor evitar estos sitios DLL.
Probablemente no resolverán su problema de todos modos
Si bien es posible que solo un solo archivo DLL en su PC se haya dañado o eliminado, es más probable que otros archivos DLL o archivos de aplicaciones relacionados también estén dañados o no. 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 bloquearse y simplemente no se le notifica el resto. Esto puede ser cierto sin importar la causa del problema.
¿Por qué las DLL podrían desaparecer o corromperse? 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 puede ser que tenga otro problema, como sectores defectuosos en su disco duro, que impiden que el archivo se cargue correctamente.
¿Cómo puedo reparar mi error DLL?
La única forma de asegurarse de obtener una DLL estable, actualizada y limpia es obtenerla a través de la fuente desde la que se originó. Por lo general, esa fuente será:
- Los 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 probar antes de hacer algo tan drástico como volver a instalar Windows. Puede usar la herramienta Protección de recursos de Windows (a menudo denominada comprobador de archivos del sistema o SFC), que buscará y corregirá los archivos del sistema dañados o faltantes en Windows. Debe tener su medio de instalación a mano al ejecutar 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, es posible que tenga varias versiones de C++ Redistributable instaladas en su PC. A veces puede ser difícil reducir cuál es el culpable, pero un buen lugar para comenzar es nuestro artículo sobre C ++ Redistributables, que también presenta varios pasos de solución de problemas y enlaces donde puede descargar las versiones más actualizadas directamente de Microsoft.
- La aplicación con la que venía la DLL. Si la DLL se instaló junto con una aplicación en lugar de ser parte de un paquete separado, su mejor opción es simplemente reinstalar la aplicación. Algunas aplicaciones le permiten realizar una reparación en lugar de una reinstalación completa. Cualquiera de las dos opciones debería funcionar, ya que una reparación generalmente busca archivos faltantes en las carpetas de instalación.
Si todo eso falla, es posible que pueda ponerse en contacto 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.