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

wdi_top

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 que existem. Veja por que você não deveria.

O que são DLLs?

Antes de começarmos a explicar 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 acessar esses arquivos DLLquando precisam que a atividade seja realizada. Os arquivos DLL são muito semelhantes aos 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.

wdi_1

O próprio Windows faz uso extensivo de DLLs, como um tour pela C:\Windows\System32pasta pode mostrar. 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 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.

Recomendado:  Como alterar o tamanho do slide no Apresentações Google

wdi_3

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 são na verdade agrupadas 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 maneira é 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.

DLLs baixadas podem estar desatualizadas

Então, 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 o seu tráfego e, uma vez que uma DLL é carregada, eles têm poucos incentivos para garantir que o arquivo seja mantido atualizado. Acrescente a isso que os fornecedores normalmente não lançam DLLs atualizadas ao público como arquivos individuais, e você pode ver que mesmo os sites que  tentam manter os arquivos atualizados provavelmente não terão 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 é frequentemente 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.

Recomendado:  Qual Chromecast devo comprar (e devo atualizar meu antigo)?

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 é que esses sites vão sair de seu caminho para lhe contar 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.

wdi_2

A boa notícia aqui é que um bom aplicativo antivírus em tempo real geralmente pode detectar esses arquivos DLL infectados antes que eles realmente sejam 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 em algum momento o recupere. É 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.

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 disco rígido – que estão impedindo o arquivo de carregar corretamente.

Recomendado:  Como usar valores de células para rótulos de gráfico do Excel

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á:

  • 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 de 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, 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 recentes 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 é 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, já que um reparo normalmente 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 poderá oferecer outras sugestões para resolver seu problema.