O que é uma DLL?

Uma DLL é uma biblioteca que contém código e dados que podem ser usados por mais de um programa ao mesmo tempo. Por exemplo, em sistemas operacionais Windows, a DLL Comdlg32 executa comuns funções relacionadas à caixa de diálogo. Portanto, cada programa pode usar a funcionalidade contida dessa DLL para implementar uma caixa de diálogo “Abrir”. Isso ajuda a promover a reutilização de código e o uso de memória eficiente.

Ao usar uma DLL, um programa pode ser modularizado em componentes separados. Por exemplo, um programa de contabilidade pode ser vendido por módulo. Cada módulo pode ser carregado para o programa principal em tempo de execução se o módulo estiver instalado. Como os módulos são separados, o tempo de carregamento do programa é mais rápido e um módulo será carregado somente quando essa funcionalidade for solicitada.

Além disso, as atualizações são mais fáceis de serem aplicadas a cada módulo sem afetar outras partes do programa. Por exemplo, talvez você tenha um programa de folha de pagamento e tenha que alterar anualmente as taxas de impostos. Quando essas alterações são isoladas para uma DLL, você pode aplicar uma atualização apenas da DLL em questão, sem a necessidade de criar ou instalar o programa novamente.

A seguir, alguns exemplos de arquivos que são implementados como DLLs em sistemas operacionais Windows:

Arquivos de controles ActiveX (.ocx)

Um exemplo de um controle ActiveX é um controle de calendário que permite que você selecione uma data em um calendário.

Arquivos (.cpl) do painel de controle

Um exemplo de um arquivo. cpl é um item que está localizado no painel de controle. Cada item é uma DLL especializada.

Arquivos de driver (.drv) do dispositivo

Um exemplo de um driver de dispositivo é um driver de impressora que controla a impressão para uma impressora.

Vantagens do uso de DLL

Veja algumas das vantagens que são fornecidas quando um programa usa uma DLL:

Uso menor de recursos

Quando vários programas usam a mesma biblioteca de funções, uma DLL pode reduzir a duplicação de código que é carregado no disco e na memória física. Isso influencia muito o desempenho, não apenas o programa que está sendo executado em primeiro plano, mas também de outros programas em execução no Windows.

Promove a arquitetura modular

Uma DLL ajuda a promover a desenvolver programas modulares. Isso o ajudará a desenvolver programas grandes que requerem versões em vários idiomas ou um programa que requer a arquitetura modular. Um exemplo de um programa modular é um programa de contabilidade que possui muitos módulos que podem ser carregados dinamicamente em tempo de execução.

Instalação e implantação de atualizações

Quando uma função em uma DLL precisa de uma correção ou uma atualização, a implantação e a instalação da DLL não requer a instalação do programa novamente. Além disso, se vários programas usam a mesma DLL, todos eles serão beneficiados com a atualização ou a correção. Esse problema pode ocorrer com mais frequência quando você usa uma DLL de terceiros que seja atualizada regularmente.

Dependências de DLL

Quando um programa ou uma DLL usa uma função que está em outra DLL, é criada uma dependência. Portanto, o programa não está contido em si mesmo e pode ter problemas de execução de esta dependência for quebrada, por exemplo:

  • Uma DLL dependente é atualizada para uma nova versão.
  • Uma DLL dependente é corrigida.
  • Uma DLL dependente é substituída por uma versão anterior.
  • Uma DLL dependente é removida do computador.

Essas ações são conhecidas como conflitos de DLL. Se não for imposta a compatibilidade com versões anteriores, o programa pode não executar adequadamente.

A seguir, veja as alterações que foram introduzidas nos sistemas operacionais Windows, a partir do Windows 2000, para ajudar a minimizar problemas de dependência de DLLs:

Proteção de arquivo do Windows

Na Proteção de Arquivo do Windows, o sistema operacional impede que as DLLs sejam atualizadas ou excluídas por engano ou por um processo não autorizado. Portanto, quando uma instalação de programa tenta remover ou atualizar uma DLL que é definida como uma DLL de sistema, a Proteção de Arquivo do Windows procurará por uma assinatura digital válida do agente modificador.

DLLs Privadas

DLLs Privadas ou Particulares permitem isolar um programa contra alterações feitas nas DLLs compartilhadas. Estas DLLs usam informações privadas especificadas em um arquivo “.local” para determinar qual a versão da DLL deve ser usada pelo programa. Para usar DLLs Privadas estas devem estar localizadas na pasta raiz do programa.

Conclusão

Para os sistemas de operacionais Windows (a partir do Windows XP e Windows 2000), grande parte da funcionalidade do sistema operacional é fornecida pelas DLLs. Além disso, quando você executa um programa em um em um destes Windows, muitas das funcionalidades do programa também podem ser oferecidas por DLLs.

O uso de DLLs ajuda a promover a modularização do código, reutilização de código, uso de memória eficiente e menor espaço em disco. Portanto, tanto o sistema operacional quanto os programas são carregados mais rapidamente, executados de forma mais eficiente e ocupam menos espaço em disco.

A introdução do Microsoft.NET Framework resolveu a maioria dos problemas de dependência de DLLs existentes anteriormente.