Pesquisar este blog

Carregando...

segunda-feira, 4 de abril de 2011

DLLs

Se você utiliza o Windows há algum tempo, provavelmente já teve o dissabor de receber mensagens de erro do tipo “Este programa causou um erro na 'nome estranho'.DLL e será fechado”, por exemplo, e sido forçado reiniciar o computador para contornar o problema. No entanto, pouca gente sabe o que são esses enigmáticos arquivos DLL, de modo que eu resolvi abordá-los nesta postagem.

Para entender isso melhor, é preciso ter em mente que os “programas” são conjuntos de instruções, em linguagem de máquina, que permitem ao usuário operar o computador. O sistema operacional também é um programa, mas funciona como uma espécie de “software-mãe”, que dá suporte a todos os demais aplicativos.
Nos primórdios da computação, os aplicativos eram constituídos por arquivos executáveis que continham todas as instruções necessárias ao seu funcionamento. No entanto, com a adoção generalizada da interface gráfica e o aumento do tamanho dos softwares, sua simples divisão em múltiplos executáveis deixou de ser eficiente (até porque seus respectivos códigos não podiam ser compartilhados).
Diante disso, os engenheiros da Microsoft criaram as DLLs (Dynamic Link Library), ou seja,“bibliotecas dinâmicas” que permitem aos programadores tirar vantagem da "linkagem dinâmica", onde o código das funções reside numa biblioteca pré-compilada e compartilhada por vários executáveis, gerando arquivos menores e mais fáceis de atualizar.
Numa analogia elementar e tecnicamente inexata, mas que ajuda a entender melhor o assunto, as DLLs estão para o para o software como os drivers estão para os componentes físicos do computador. Em outras palavras, se os drivers fazem uma “ponte” entre o hardware e o SO, as DLLs fazem o mesmo em relação ao SO e os aplicativos, sendo responsáveis por exibir as janelas dos programas, criar sons, conectar o computador à Internet, salvar e carregar arquivos, e por aí vai.
De certa forma, o próprio Windows é uma vasta coleção DLLs, já que sua função precípua (como a de qualquer SO) é garantir que as demais aplicações funcionem sem que tenham de “se preocupar com os detalhes de suas tarefas rotineiras”. (O kernel32.dll, por exemplo, é encarregado de salvar arquivos e gerenciar o uso da memória RAM, enquanto o user32.dll gerencia a área de transferência do sistema e cuida dos menus exibidos na tela, do papel de parede e do ponteiro do mouse).
As DLLs podem ter diversas versões, e aplicativos compilados para operar com uma delas podem não funcionar corretamente com outra mais nova, mais antiga, ou de idioma diferente. Ainda que elas incluam instruções para que somente as mais recentes sobrescrevam as antigas, algumas atualizações podem resultar em comportamento errático ou mesmo inviabilizar o funcionamento de determinados programas.
As versões 9x/ME do Windows eram bem mais susceptíveis ao "inferno das DLLs" do que as mais recentes, mas não custa lembrar que o XP possui uma ferramenta para verificação de integridades dos arquivos do sistema – para convocá-la clique em Iniciar > Executar, digite "sigverif.exe" (sem as aspas) e pressione o botão "OK"; no quadro que se abre em seguida, clique no botão "Iniciar" e aguarde até que o "Verificador de Assinatura de Arquivo" apresente seu relatório.
Outra boa opção para tentar solucionar problemas com DLLs corrompidas ou ausentes é visitar o site http://www.dll-files.com/.
Bom dia a todos e até mais ler.

13 comentários:

kleber disse...

Bom dia Fernando otima postagem em relação aos ddlls
aproposito tu ja falou tudo a respeito te desejo um otimo começo de semana.

Anônimo disse...

Eu fiz o download do programa que vc indicou, mas para ele corrigir os problemas é preciso comprar. Meu computador apresentou 401 erros e ele não corrigiu nenhum. Tem algum programa gratuito que faz essa função?

Abçs

Guará Matos disse...

Valeu por mais essa amigo.
Ah, detonei o meu Firfox e assumi o IE9, tô gostando. Principalmente por ser bem mais leve e simples.

Abraços.

FERNANDO disse...

Oi, Kleber.
Alguns assuntos merecem ser revisitados de quando em vez (como é o caso da segurança, por exemplo, que eu considero o carro chefe aqui do Blog). Outros são revistos regularmente devido à sua importância e ao fato de nossa audiência ser rotativa - mas eu procuro sempre reescrever o texto, seja a partir de uma nova perspectiva, seja inserindo novas informações.
A propósito, já reparei que alguns comentaristas assíduos (daqueles que deixam comentários diariamente por meses a fio) simplesmente somem do mapa e nunca mais dão sinal de vida - mas isso é outra história e fica para outra vez.
Abraços.

FERNANDO disse...

Oi, Anônimo.
Pediria que você fosse mais explícito em relação ao programa em questão, de modo que eu possa sugerir uma alternativa gratuita e igualmente eficiente.
Abraços.

FERNANDO disse...

Oi, Guará.
Valeu por dividir sua experiência conosco, meu caro.
Devido à incompatiblidade do IE9 com a versão do Windows que eu utilizo, ainda não me foi possível testá-lo da maneira como gostaria.
Abraços e até mais ler.

Anônimo disse...

O programa referente as DLL'S (http://www.dll-files.com/). Eu instalei o registry Booster, ele analisou meu pc, encontrou 401 erros graves e informou que tenho que comprar o programa para corrigir os erros.
Abçs

FERNANDO disse...

Oi, anônimo.
A Web está coalhada de "soluções" destinadas a "identificar e corrigir erros no seu sistema" mediante a instalação de um progrma qualquer - e do pagamento da respectiva licença.
A sugestão que eu ofereci na postagem remete apenas a um serviço que visa resolver problemas com DLLs ausentes ou corrompidas, mas basta esquadrinhar as 1250 postagens publicadas aqui no Blog para encontrar mais informações sobre o assunto.
Abraços e até mais.

Cris disse...

Bom dia Fernando!
Pois é!
A minha maior dificuldade é entender esta "linguagem de máquina", por isso, ler uma vez não basta. Eu penso que ficou claro o que são DLLs, mas, como você disse anteriormente, conhecer o SO (sistema operacional) é uma questão de "ambientação e familiarização", e eu, estou me esforçando para ser um “membro da casa”. Como não nego meu “instinto” de curiosa, principalmente quando se fala em “caixa preta”, já fui dar uma bisbilhotada no tutorial do BlackBox, CPU-Z e Everest e, mesmo não sendo uma conhecedora de hardware e software, pude ter uma noção sobre o que são estes sistemas e a amplitude das informações que eles prestam aos usuários.
Ainda não tive tempo de ler com mais atenção sobre o Windows Server 2003, mas, já guardei os links no “favoritos” do PC que uso para trabalhar, e quando houver uma “folguinha”, vou "tentar" ler.
Ah! Consegui fazer o download do IE9.
Beijo e tenha um ótimo dia.

FERNANDO disse...

Oi, Cris.
A rigor, você não precisa conhecer a fundo linguagem de máquina (a menos que se interesse por programação), mas as sutilezas da máquina para poder operá-la adequadamente. E pelo andar da carruagem, você vai tirar de letra.
Bom saber que conseguiu atualizar o navegador, meu bem. Beijos e um ótimo dia para você também.

Anônimo disse...

Boa tarde. Fernando parabéns pelo blogue, muito simples e pedagógico, mas também rigoroso e atual.

Cris, os computadores não fazem a mínima ideia do que é o Word, a Internet e até mesmo a letra "A". Tudo o que eles fazem são contas e mais contas: pegam em informação da memória, aplicam-lhe operações, enviam para a memória, para a placa gráfica, etc, e nada mais. Contas e mais contas. A isto chamamos micro-programação e é a única linguagem que o pc entende.

Como a micro-programação é terrivelmente complicada, foram acrescentadas mais linguagens que se aproximam da nossa língua. Nelas escrevemos o que queremos e um tipo especial de programas (os compiladores) "convertem" o que queremos em linguagem-máquina. Essa linguagem é a que está logo "acima" da micro-programação. Sugiro que pesquise por uma coisa chamada "linguagens de alto nível".

Espero ter ajudado
Cumprimentos de Portugal

www.mundopaspalho.com

FERNANDO disse...

Oi, Anônimo.
É um prazer recebê-lo, mais ainda pela sua postura participativa (adoraria ter mais comentaristas como você). No mais, da feita que alguns assuntos fogem um pouquinho à capacidade interpretativa dos nosso púbico alvo (leigos e iniciantes, em sua maioria), eu procuro sempre manter "a bola baixa" e primar por uma linguagem acessível a todos. Mas, olha, sua explanação foi perfeita.
Volte sempre e escreva quando quiser, OK?

José Viegas disse...

Muito obrigado Fernando pelas palavras elogiosas. Desculpe ter postado como anónimo, mas a conta Google estava a falhar. Se tiver assuntos dos quais queira que eu escreva em "bola baixa" :-) fique à vontade. Estou em www.mundopaspalho.com e mundopaspalho@gmail.com

Abraço
José Viegas