Buscar

Entendendo as dll's

nome

Miguel Machado

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

DLLs (Dynamic Link Libraries, ou Bibliotecas de Vínculo Dinâmico) são arquivos que contém componentes de programas.

Quando os desenvolvedores criam um programa, eles não colocam todas as funções do programa em um arquivo só. Eles separam algumas delas e colocam em arquivos auxiliares. Desta forma, você passa a ter um EXE que contém o programa principal, e várias DLLs que contém rotinas utilizadas pelo programa principal.

Existem pelo menos dois grandes benefícios em criar programas dessa forma: o primeiro é que você pode compartilhar funções entre programas distintos. Por exemplo, a Microsoft pode disponibilizar uma função em um arquivo DLL que pode ser usada por vários programas, de empresas diferentes. O segundo benefício é que as atualizações das funções ficam mais fáceis, pois você pode apenas alterar uma DLL, sem precisar reinstalar todo o programa.

O Windows tem dezenas de DLLs, que ficam geralmente no diretório \Windows\System. Algumas são internas, outras podem ser utilizadas por outros programas. Por exemplo, qualquer programa que abra a famosa tela 'salvar como' pode estar utilizando a COMDLG32.DLL. Ela contém uma função que desenha o quadro 'salvar como'. Isso é muito importante para a padronização dos programas, além de facilitar o aprendizado do usuário. Imagine como seria se cada aplicativo tivesse uma tela diferente de salvamento, com os botões OK e Cancelar em posições variadas, e diferentes formas de mostrar o conteúdo do HD.

Assim, todo Windows tem obrigatoriamente uma COMDLG32.DLL no \Windows\System. Porém, da mesma forma que um programa como o Office tem 'versões' (95, 97, 2000), uma DLL também tem. A COMDLG32.DLL que está instalada no Windows 95 não é a mesma que a do Windows 98. Em alguns casos, elas são diferentes mesmo em outras linguagens do sistema (Windows em português e Windows em inglês, por exemplo).

Para descobrir a versão de uma DLL, basta entrar no Explorer, dar um clique direito nela, e escolher propriedades. Clique na guia "Versão", e você verá algo do tipo 5.0.2920.0. O primeiro número (5) indica a versão "maior". Esse número se altera apenas quando grandes alterações ocorrem, como quando a DLL é reescrita para rodar em uma nova versão de sistema operacional. Os outros números indicam a versão "menor", ou seja, a cada mínima alteração na DLL, incrementa-se 1 no número 2920.
Tendo entendido tudo isso, fica mais fácil entender o problema com as DLLs. Se um programa "mal comportado" se instala no Windows e copia uma versão errada de DLL por cima da que você tinha anteriormente, isso pode gerar problemas. O programa recém instalado pode funcionar normalmente, mas algum programa que funcionava bem anteriormente, agora passa a dar problemas estranhos (travamentos, não carrega, etc.). Isso em razão da substituição da DLL.

Teoricamente, a instalação do programa deve verificar se a versão que está sobrescrevendo não é anterior à que estava em sua máquina, mas isso não garante muito, porque uma versão mais nova também pode não funcionar corretamente.

Qual seria a solução? Não existe uma fórmula, apenas alguns cuidados. Se precisar instalar programas shareware, de revistas, ou da Internet, faça-o de preferência em um computador de testes, pois eles podem ocasionar danos ao Windows. É por isso que de tempos em tempos recomenda-se reinstalar o Windows para quem instala muitos programas. No caso do 98 e do ME, existe uma ferramenta de nome "Informações do Sistema Microsoft". Entre no Iniciar, Executar, e digite msinfo32. Escolha o menu Ferramentas, Verificador de Arquivos do Sistema, e você verá um utilitário do Windows que verifica se alguma DLL está corrompida.

Publicidade

Vote no artigo




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes do artigo

Categoria: Outros
Adicionado dia: 19/04/05
Por: Miguel Machado
Visualizado: 11698 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009