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 muito tentador baixar o arquivo de um dos muitos sites DLL lá fora. Veja por que você não deveria.
O que são DLLs??
Antes de começarmos a entender por que você não deve baixar os arquivos DLL (Dynamic Link Library) da Internet, vamos primeiro dar uma olhada nos arquivos DLL. Um arquivo DLL é uma biblioteca que contém um conjunto de códigos e dados para executar uma atividade específica no Windows. Os aplicativos podem, então, chamar esses arquivos DLL quando precisarem executar essa atividade. Arquivos DLL são muito parecidos com arquivos executáveis (EXE), exceto que 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 maneira 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 juntas para que, quando uma DLL é chamada, várias outras DLLs também sejam chamadas ao mesmo tempo.
O próprio Windows faz uso extensivo de DLLs, como um tour pela C: \ Windows \ System32
pasta pode lhe dizer. Como um exemplo do que estamos falando, vamos considerar o arquivo de sistema do Windows "comdlg32.dll". Esse arquivo, também conhecido como Biblioteca de Caixa de Diálogo Comum, contém código e dados para criar muitas das caixas de diálogo comuns que você vê Diálogos do Windows 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 de como a caixa de diálogo aparece na tela. Obviamente, vários aplicativos podem chamar essa DLL ao mesmo tempo, caso contrário, você não conseguiria abrir uma caixa de diálogo (como a mostrada abaixo) em mais de um aplicativo por vez.
As DLLs permitem que o código seja modularizado e reutilizado, o que significa que os desenvolvedores não precisam gastar tempo escrevendo código do zero para executar funções comuns ou comuns. E embora os desenvolvedores criem suas próprias DLLs para instalar com seus aplicativos, a grande maioria das DLLs chamadas pelos aplicativos é, na verdade, empacotada com o Windows ou com pacotes extras, como o Microsoft .NET Framework ou o Microsoft C ++ Redistributables. A outra grande vantagem de modularizar o código dessa maneira é que as atualizações são mais fáceis de aplicar a cada DLL do que a um aplicativo inteiro, especialmente quando essas DLLs não são fornecidas pelo 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.
DLLs baixadas podem estar desatualizadas
Então, com um pouco de compreensão das DLLs em nossos cintos, por que não baixá-las da Internet quando uma delas está faltando no seu sistema??
O problema mais comum que você encontrará nas DLLs baixadas é que elas estão desatualizadas. Muitos dos sites de DLLs por aí obtêm suas DLLs apenas carregando-os de seus próprios computadores ou de seus usuários. Você provavelmente já pode ver o problema. A maioria desses sites só quer o 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 geralmente não lançam DLLs atualizadas para o público como arquivos individuais, e você pode ver que mesmo os sites que experimentar manter os arquivos atualizados provavelmente não será muito bem-sucedido.
Há também o problema adicional que as DLLs são normalmente integradas nos pacotes. Uma atualização para uma DLL em um pacote geralmente é 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 tenham foi atualizado.
DLLs baixadas podem ser infectadas
Embora menos comum, um problema potencialmente muito pior é que, às vezes, as DLLs baixadas de fontes diferentes do fornecedor podem ser carregadas com vírus ou outros malwares que podem infectar seu computador. Isso é particularmente verdadeiro em sites que não são muito cuidadosos sobre onde obtêm seus arquivos. E não é como esses sites vão sair do seu caminho para falar 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 - de dar acesso mais profundo a esse arquivo do que um arquivo infectado normal.
A boa notícia é que um bom aplicativo antivírus em tempo real geralmente pode detectar esses arquivos DLL infectados antes que eles sejam realmente salvos no sistema e impedir que eles causem danos. Ainda assim, você deve lembrar que mesmo um ótimo programa antivírus pode não fornecer proteção perfeita. Se você tiver o hábito de baixar arquivos arriscados, provavelmente alcançará você em algum momento. É melhor apenas evitar esses sites DLL.
Eles provavelmente não vão resolver seu problema de qualquer maneira
Embora seja possível que apenas um único arquivo DLL do seu computador 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 determinado arquivo é que esse é o primeiro erro encontrado por um aplicativo antes de travar e você simplesmente não está sendo notificado do restante. Isso pode ser verdade, não importa a causa do problema.
Por que as DLLs desaparecem ou são corrompidas? Pode ser que outro aplicativo ou atualização errante tenha tentado substituir o arquivo e falhado, ou substituído por uma cópia desatualizada. Pode ser uma falha na instalação do seu aplicativo principal ou em um pacote como o .NET. Pode até ser que você esteja tendo outros problemas, como setores defeituosos no seu disco rígido, que estão impedindo que o arquivo seja carregado 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 através da origem de origem. Normalmente, essa fonte será:
- Sua mídia de instalação do Windows. É improvável que você seja capaz de simplesmente copiar um arquivo DLL da sua mídia de instalação, mas você tem uma opção rápida para tentar antes de fazer algo tão drástico quanto reintegrar o Windows. Você pode usar a ferramenta Proteção de Recursos do Windows (geralmente chamada de verificador de arquivos do sistema, ou SFC), que procurará e consertará arquivos de sistema corrompidos ou ausentes no Windows. Você deve ter sua mídia de instalação à mão quando executar a ferramenta, apenas no caso de precisar 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 também. Você pode ler nosso artigo sobre o .NET framework, que também tem alguns conselhos para encontrar 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 + + Redistribuível instaladas no seu PC. Às vezes pode ser difícil restringir qual deles é 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 diretamente da Microsoft..
- O aplicativo que a DLL veio com. Se a DLL foi instalada junto com um aplicativo em vez de fazer parte de um pacote separado, sua melhor opção é 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, pois um reparo geralmente procura 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 esta solicitação; alguns não são. Se você se deparar com uma empresa que não fornecerá arquivos individuais, eles poderão pelo menos oferecer outras sugestões para solucionar o problema..