quarta-feira, 19 de novembro de 2008

DLLs

Quem utiliza o Windows certamente deve ter se deparado com mensagens de erro do tipo "Este programa executou uma operação ilegal e será fechado..." ou "Este programa causou um erro na 'nome estranho'.DLL e será fechado...". A sigla "DLL" (de Dynamic Link Library) designa as bibliotecas dinâmicas incorporadas ao sistema operacional da Microsoft - uma solução encontrada pelos projetistas da empresa para tirar vantagem de uma estratégia de geração de código conhecida como "linkagem dinâmica".
Note que, na linkagem convencional, a maioria das funções utilizadas por um aplicativo não é codificada em seu corpo, mas sim armazenada em "bibliotecas" (para gerar o executável, o programador informa ao compilador a localização dessas bibliotecas, e este combina o código das funções com o código do programa propriamente dito); na linkagem dinâmica, o código das funções reside numa biblioteca pré-compilada, que é consultada durante a execução dos programas (a possibilidade de vários executáveis compartilharem esses códigos dispensa a repetição de um mesmo trecho em diferentes aplicativos, gerando arquivos menores e facilitando suas atualizações).

Observação: Nos primórdios da computação, um programa era constituído apenas pelo executável que continha todas as instruções necessárias para seu funcionamento, mas com a adoção generalizada da interface gráfica e o aumento de tamanho dos programas, a simples divisão dos aplicativos em múltiplos executáveis deixou de ser eficiente do ponto de vista produtivo, posto que os respectivos códigos não podiam ser compartilhados.

As DLLs podem ter diversas versões, e aplicativos compilados para operar com uma delas nem sempre funcionam corretamente com outra mais nova, mais antiga, ou mesmo de idioma diferente. Assim, os desenvolvedores de softwares passaram a incluir em seus programas de instalação todas as DLLs necessárias ao aplicativo, mas, ainda que elas possuam campos com informações sobre suas versões - que podem ser lidos por qualquer aplicação, de modo que somente as mais recentes sobrescrevam as antigas - sempre existe a possibilidade de programas instalados anteriormente, que rodavam sem problemas até então, passarem a apresentar comportamento errático ou mesmo deixarem de funcionar.
Apesar de ser bem menos susceptível ao "inferno das DLLs" do que as versões 9x/ME (devido principalmente ao bom mecanismo de permissões presente no sistema de arquivos NTFS), o Windows XP também possui uma ferramenta para verificação de integridades dos arquivos do sistema. Para convocá-la, basta clicar em Iniciar > Executar, digitar "sigverif.exe" (sem as aspas) e pressionar o botão "OK". No quadro que se abrirá 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é sexta-feira (amanhã, "dia da Consciência Negra", é feriado em São Paulo, Rio de Janeiro e vários outros municípios brasileiros, de modo que não haverá nova postagem aqui no Blog).