Pesquisar por palavra-chave:

segunda-feira, 8 de novembro de 2010

DLL's do Windows

Acredito que todos os usuários dos sistemas operacionais microsoft já se depararam com pelo menos 10 erros causados por dll´s, do tipo “ tal programa não  pode abrir devido ao arquivo A3d.dll não ter sido carregado”. Mas o que são os arquivos .dll? Acredite, erros de dll´s na maioria dos casos ocorre por mau uso do sistema Windows,  portanto, antes de querer matar o Bill Gates por fazer um sistema que vive travando, leia este artigo e tome mais cuidado.
As dll (dynamic link library) ou biblioteca de link Dinâmico, são funções de programas, cada dll em uma função, pra se ter uma idéia, existem DLL para as mais diversas finalidades, como aceesar um dispositivo de hardware, escrever e ler a memória, enviar uma impressão, tem até dll só pra aparecer mensagens de erro, (esta dá vontade de apagar)
A ideia básica de uma dll, é que muitos programas diferentes usam muitas funções em comum, então, porque carregar duas vezes uma mesma função se é possível fazer os programas compartilharem estas funções?
Vários programas têm funções em comum, então se ao carregar um programa na memória, que usa uma determinada função, ao abrir outro programa que também exige a mesma determinada função, o segundo programa não tem que carregar sua dll, pois já existe outra dll de outro programa que faz a mesma função, então uma dll de um programa pode “ ser emprestada” outro programa, assim economizando espaço na memória. Geralmente existem várias dll´s, com a mesma função e mesmo nome espalhadas no computador. mas não são carregadas em duplicidade.
O grande problema, é que ao apagar uma dll (acidentalmente ou não) vários programas podem ter mau funcionamento ou até parar de funcionar, já que suas funções ficam reduzidas.
Outro grande perigo, é quanto a instalação de softwares de desenvolvedores desconhecidos, uma dll de uma determinada função, sempre terá o mesmo nome de arquivo, mesmo que haja atualização destas dll´s, um programa bem desenvolvido, verifica antes de ser instalado, se a dll que está tentando instalar já existe no sistema, se existir, verifica sua versão, se a versão encontrada no computador for de versão mais recente, o programa de instalação não sobrescreve a dll existente, pois a dll de versão mais nova tem funções melhoradas. Mas infelizmente, nem todos os programas fazem isso, dependendo de quem desenvolveu o programa, pode ser que a dll seja sobrescrita e substituida por uma mais antiga, causando um enorme impacto no sistema, pois programas mais novos não trabalham com dll´s antigas, mesmo que programas antigos, funcionam sem problemas com as dll´s  de novas versões, portanto atualizar por dll´s novas não prejudicam programas antigos, enquanto que o contrario não acontece.
Meu conselho é:
Antes de instalar um programa, leia a documentação pra saber se haverá instalação de dll´s, sendo que eu nunca ouvi falar de ninguém que costuma ler o tal arquivo “leiame.txt” ou “readme.txt” (geralmente estes arquivos só são lidos quando o usuário está procurando o serial de um software pirata!) no arquivo que acompanha os programas, geralmente, esta  a informação sobre versões de dll´s, ou se poderá haver substituição de versões da mesma.
Outra dica é criar um ponto de restauração antes de instalar um novo programa, se bem que geralmente o Windows faz isso sozinho, mas não custa ter certeza!
Existe uma reação comum de acontecer quando uma dll é substituida, é muito comum, talvez já aconteceu com você!
Ao tentar abrir dois programas simultaneamente, (vamos chama-lo de “programa 1” e “programa 2”) se abrir o programa 1 primeiro, e em seguida abrir o programa 2, ambos funcionam normalmente, agora, se abrir o programa 2 primeiro, e em seguida o programa 1, eles não funcionam, já aconteceu com você? Este problema ocorre devido a versões diferentes de dll entre os programas, que ao abrir o programa antigo primeiro, a dll é carregada, quando abrir um programa mais recente, que depende de uma dll mais recente, a mesma não é carregada, pois já existe outra dll igual com a mesma função na memória, e as dll´s não carregam em duplicidade, mas até aí, é só inverter a ordem de abertura dos programas quando for abri-los simultaneamente.
Corrigindo problemas com DLL:
Caso seja um problema de falta de uma determinada dll, o arquivo ausente ou corrompido pode ser substituido, localize em outro computador a dll faltante, copie em um pendrive, e instale no computador com problemas, mas verifique a versão do sistema operacional.
Podemos também executar no prompt de comandos o seguinte comando que corrige arquivos protegidos do Windows
Em iniciar > executar digite “CMD” e em seguida digite o seguinte comando:
       sfc /scannow
(necessita do cd de instalação do Windows caso o SFC encontre erros nos arquivos, se isso acontecer o próprio SFC exibirá uma mensagem na tela pedindo para inserir o CD)

Uma possível solução, é encontrar a dll em sites de repositório de dll's, às vezes eu uso este site, www.dlldump.com

Espero com este artigo ter ajudado pessoas com problemas  com dll's 




Nenhum comentário:

Postar um comentário

Obrigado por comentar, será publicado em breve!

google-site-verification: google53a8eb0bc7dc474a.html