Diferença Entre DLL e LIB

Anonim

DLL vs LIB

Uma biblioteca é uma coleção de recursos que podem ser usados ​​para desenvolver aplicativos. Uma biblioteca geralmente é composta de sub-rotinas, funções, classes, valores e tipos. Durante o processo de ligação (normalmente feito por um vinculador), bibliotecas e executáveis ​​fazem referência um ao outro. Os arquivos de biblioteca são divididos em bibliotecas estáticas e dinâmicas dependendo do tempo em que as sub-rotinas são carregadas no aplicativo de destino. Consequentemente, os arquivos LIB são bibliotecas vinculadas estáticamente e os arquivos DLL são bibliotecas vinculadas dinamicamente.

O que é DLL?

Dynamic Link Library (mais conhecida como DLL) é uma implementação de biblioteca compartilhada desenvolvida pela Microsoft. Ele usa o. dll,. ocx ou. drv extensões e são usados ​​em sistemas operacionais Microsoft Windows e OS / 2 … dll é usado pelos arquivos DLL regulares. E. A extensão ocx é usada por bibliotecas que contêm controles ActiveX e. A extensão drv é usada por arquivos de driver do sistema legado. O formato do arquivo DLL é o mesmo que os arquivos do Windows EXE (arquivos executáveis ​​portáteis no Windows de 32 bits / 64 bits e Novo executável no Windows de 16 bits). Portanto, qualquer combinação de código, dados e recursos pode ser contida em arquivos DLL (assim como em arquivos EXE). Como um fato, os arquivos de dados com o formato de arquivo DLL são chamados de DLLs de recursos. As bibliotecas de ícones (com extensão. Icl) e os arquivos de fonte (com extensões.source e.cop) são exemplos de DLL de recursos.

Componentes chamados seções compõem uma DLL e cada seção possui seus próprios atributos, como somente leitura / gravável e executável / não executável. As seções de código são executáveis, enquanto as seções de dados não são executáveis. As seções de código são compartilhadas e as seções de dados são privadas. Isso significa que todos os processos que usam a DLL usará a mesma cópia do código, enquanto cada processo terá sua própria cópia dos dados. A biblioteca dinâmica primária para Windows é kernel32. dll, que contém as funções base (funcionalidade relacionada a arquivos e memória) no Windows. COM (Component Object Model) é a extensão da DLL para OOP (Object Oriented Programming). As DLLs convencionais são mais fáceis de usar do que os arquivos COM.

O que é LIB?

Os arquivos LIB são bibliotecas estáticas (também conhecidas como bibliotecas vinculadas estaticamente). Os arquivos LIB contêm uma coleção de sub-rotinas, funções externas e variáveis. Os arquivos LIB são resolvidos em tempo de compilação (em oposição ao tempo de execução). O código é realmente copiado para o aplicativo de destino. Um compilador, vinculador ou um fichário fará essa resolução e produzirá um arquivo de objeto e um arquivo executável. Esse processo é chamado de processo de compilação estática.

Qual a diferença entre DLL e LIB?

As bibliotecas LIB podem ser chamadas durante o tempo de compilação, mas as bibliotecas DLL só podem ser chamadas durante o tempo de execução.Os arquivos LIB são significativamente maiores que os arquivos DLL. Um problema muito comum com arquivos DLL é o problema de versão. Isso acontece quando o código da DLL é alterado e o aplicativo usa uma versão incorreta de uma DLL. Este não é um problema associado aos arquivos LIB. Em termos de reutilização, ao escrever novas versões de sistemas ou aplicações completamente novas, as DLLs são sempre melhores que LIBs.