O que são arquivos DLL e por que um está faltando no meu PC?

Quando você recebe um erro dizendo que o Windows não conseguiu encontrar um arquivo DLL específico, pode ser terrivelmente tentador fazer o download do arquivo de um dos muitos sites DLL disponíveis. É por isso que você não deveria.

O que são DLLs?

RELACIONADO:O que é rundll32.exe e por que ele está sendo executado?

Antes de começarmos a entender por que você não deve baixar arquivos Dynamic Link Library (DLL) da Internet, vamos primeiro dar uma olhada no que são arquivos DLL. Um arquivo DLL é uma biblioteca que contém um conjunto de códigos e dados para realizar uma atividade específica no Windows. Os aplicativos podem então chamar esses arquivos DLL quando precisarem que a atividade seja realizada. Os arquivos DLL são muito parecidos com os arquivos executáveis ​​(EXE), exceto que os arquivos DLL não podem ser executados diretamente no Windows. Em outras palavras, você não pode clicar duas vezes em um arquivo DLL para executá-lo da mesma forma que faria com um arquivo EXE. Em vez disso, os arquivos DLL são projetados para serem chamados por outros aplicativos. Na verdade, eles são projetados para serem chamados por vários aplicativos ao mesmo tempo. A parte “link” do nome da DLL também sugere outro aspecto importante. Várias DLLs podem ser vinculadas entre si para que, quando uma DLL for chamada, várias outras DLLs também sejam chamadas ao mesmo tempo.

O próprio Windows faz uso extensivo de DLLs, como um tour pelo C: \ Windows \ System32 pasta pode te dizer. Como um exemplo do que estamos falando, vamos considerar o arquivo de sistema do Windows “comdlg32.dll”. Este arquivo, também conhecido como Biblioteca de Caixa de Diálogo Comum, contém código e dados para construir muitas das caixas de diálogo comuns que você vê no Windows - diálogos para coisas como abrir arquivos, imprimir documentos e assim por diante. As instruções nesta DLL tratam de tudo, desde o recebimento e interpretação de mensagens destinadas à caixa de diálogo até a especificação da aparência da caixa de diálogo na tela. Obviamente, vários aplicativos podem chamar essa DLL ao mesmo tempo, caso contrário, você não seria capaz de abrir uma caixa de diálogo (como a abaixo) em mais de um aplicativo ao mesmo tempo.

As DLLs permitem que o código seja modularizado e reutilizado, o que significa que os desenvolvedores não precisam perder tempo escrevendo código do zero para executar funções mundanas ou comuns. E embora os desenvolvedores criem suas próprias DLLs para instalar com seus aplicativos, a grande maioria das DLLs chamadas por aplicativos é, na verdade, empacotada com o Windows ou com pacotes extras, como o Microsoft .NET Framework ou Microsoft C ++ Redistributables. A outra grande vantagem de modularizar o código dessa forma é que as atualizações são mais fáceis de aplicar a cada DLL em vez de a um aplicativo inteiro - especialmente quando essas DLLs não vieram do desenvolvedor do aplicativo. Por exemplo, quando a Microsoft atualiza certas DLLs em seu .NET Framework, todos os aplicativos que usam essas DLLs podem aproveitar imediatamente a segurança ou funcionalidade atualizada.

RELACIONADO:O que é o Microsoft .NET Framework e por que ele está instalado no meu PC?

DLLs baixadas podem estar desatualizadas

Portanto, com um pouco de conhecimento sobre as DLLs, por que não baixá-las da Internet quando alguma estiver faltando em seu sistema?

O problema mais comum que você encontrará com DLLs baixadas é que elas estão desatualizadas. Muitos dos sites de DLLs lá fora obtêm suas DLLs simplesmente fazendo o upload de seus próprios computadores - ou de seus usuários. Você provavelmente já pode ver o problema. A maioria desses sites deseja apenas seu tráfego e, uma vez que uma DLL é carregada, eles têm pouco incentivo para garantir que o arquivo seja mantido atualizado. Adicione a isso que os fornecedores normalmente não lançam DLLs atualizadas para o público como arquivos individuais, e você pode ver que até mesmo sites quetentar para manter os arquivos atualizados provavelmente não terá muito sucesso.

Há também o problema adicional de que as DLLs geralmente são integradas aos pacotes. Uma atualização para uma DLL em um pacote é freqüentemente acompanhada por atualizações para outras DLLs relacionadas no mesmo pacote, o que significa que mesmo no caso improvável de você obter um arquivo DLL atualizado, você não obterá arquivos relacionados que também foi atualizado.

DLLs baixadas podem ser infectadas

Embora menos comum, um problema potencialmente muito pior é que as DLLs que você baixa de fontes diferentes do fornecedor às vezes podem ser carregadas com vírus ou outro malware que pode infectar seu PC. Isso é particularmente verdadeiro em sites que não são muito cuidadosos sobre onde obtêm seus arquivos. E não é como se esses sites fossem se esforçar para informá-lo sobre suas fontes de risco. A parte realmente assustadora é que, se você baixar um arquivo DLL infectado, corre o risco - pela própria natureza dos arquivos DLL - dar a esse arquivo um acesso mais profundo do que um arquivo infectado normal poderia ter.

RELACIONADO:Qual é o melhor antivírus para Windows 10? (O Windows Defender é bom o suficiente?)

A boa notícia aqui é que um bom aplicativo antivírus em tempo real geralmente pode detectar esses arquivos DLL infectados antes que eles sejam realmente salvos em seu sistema e evitar que causem qualquer dano. Ainda assim, você deve se lembrar que mesmo um ótimo programa antivírus pode não fornecer a proteção perfeita. Se você tem o hábito de baixar arquivos perigosos, é provável que chegue até você em algum momento. É melhor apenas evitar esses sites DLL.

Eles provavelmente não resolverão o seu problema de qualquer maneira

Embora seja possível que apenas um único arquivo DLL em seu PC tenha sido corrompido ou excluído, é mais provável que outras DLLs ou arquivos de aplicativos relacionados também estejam corrompidos ou ausentes. O motivo pelo qual você está recebendo um erro sobre um arquivo específico é que é o primeiro erro que um aplicativo encontra antes de travar e você simplesmente não está sendo notificado sobre o resto. Isso pode ser verdade, independentemente da causa do problema.

RELACIONADO:Explicação de setores ruins: por que os discos rígidos têm setores ruins e o que você pode fazer a respeito

Por que as DLLs podem estar ausentes ou corrompidas? Pode ser que outro aplicativo ou atualização errôneo tenha tentado substituir o arquivo e falhou, ou o substituiu por uma cópia desatualizada. Pode ser uma falha na instalação de seu aplicativo principal ou em um pacote como o .NET. Pode até ser que você esteja tendo outro problema, como setores defeituosos no seu disco rígido, que estão impedindo o arquivo de carregar corretamente.

Como posso corrigir meu erro de DLL?

A única maneira de garantir que você obtenha uma DLL estável, atualizada e limpa é obtê-la por meio da fonte da qual se originou. Normalmente, essa fonte será:

RELACIONADO:Como verificar (e corrigir) arquivos de sistema corrompidos no Windows

  • Sua mídia de instalação do Windows. É improvável que você consiga simplesmente copiar um arquivo DLL de sua mídia de instalação, mas você tem uma opção rápida de tentar antes de fazer algo tão drástico como reinstalar o Windows. Você pode usar a ferramenta Proteção de Recursos do Windows (geralmente conhecida como verificador de arquivos do sistema ou SFC), que verifica e corrige arquivos de sistema corrompidos ou ausentes no Windows. Você deve ter sua mídia de instalação à mão ao executar a ferramenta, caso seja necessário copiar um arquivo de lá. (Se você não tiver um disco de instalação, você pode baixar um aqui.)
  • Os pacotes do Microsoft .NET Framework. Várias versões do .NET são instaladas automaticamente junto com o Windows, e muitos aplicativos também instalam arquivos desses pacotes. Você pode ler nosso artigo sobre o .NET framework, que também contém alguns conselhos para localizar e reparar problemas associados.
  • Vários pacotes redistribuíveis do Microsoft Visual C ++. Dependendo dos aplicativos que você usa, você pode ter várias versões do C ++ Redistributable instaladas no seu PC. Às vezes, pode ser difícil definir qual é o culpado, mas um bom lugar para começar é nosso artigo sobre Redistribuíveis C ++, que também apresenta várias etapas de solução de problemas e links onde você pode baixar as versões mais atualizadas direto da Microsoft.
  • O aplicativo com o qual a DLL veio. Se a DLL foi instalada junto com um aplicativo em vez de fazer parte de um pacote separado, sua melhor aposta é apenas reinstalar o aplicativo. Alguns aplicativos permitem que você execute um reparo em vez de uma reinstalação completa. Qualquer uma das opções deve funcionar, uma vez que um reparo geralmente procura por arquivos ausentes nas pastas de instalação.

Se tudo isso falhar, você poderá entrar em contato com o fornecedor do aplicativo e solicitar uma cópia de um arquivo DLL individual. Algumas empresas estão abertas a este pedido; alguns não são. Se você encontrar uma empresa que não fornece arquivos individuais, ela pelo menos pode oferecer outras sugestões para resolver seu problema.


$config[zx-auto] not found$config[zx-overlay] not found