Vantagens de usar DLLs
Vinculação dinâmica tem as seguintes vantagens:
Economiza memória e reduz a troca.Muitos processos podem usar uma única DLL simultaneamente, compartilhando uma única cópia da DLL na memória.Em contraste, o Windows deve carregar uma cópia do código biblioteca na memória para cada aplicativo que é criado com uma biblioteca de vínculo estático.
Poupa espaço em disco.Muitos aplicativos podem compartilhar uma única cópia da DLL no disco.Em contraste, cada aplicativo criado com uma biblioteca de vínculo estático tem o código da biblioteca vinculado em sua imagem executável como uma cópia separada.
Upgrades para a DLL são mais fáceis.Quando alterar as funções em uma DLL, os aplicativos que usá-los não precisa ser recompilado ou vincular novamente como argumentos de função e valores de retorno não alteram.Em contraste, o código de objeto vinculado estaticamente requer o aplicativo ser vinculados novamente quando alterar as funções.
Fornece suporte de After-Market.Por exemplo, um driver de vídeo DLL pode ser modificado para oferecer suporte a uma exibição que não estava disponível quando o aplicativo foi enviado.
Oferece suporte a programas multilíngües.Programas escritos em diferentes linguagens de programação podem chamar a mesma função DLL, como os programas seguem a convenção de chamada da função.Os programas e a função de DLL devem ser compatíveis das seguintes maneiras: a ordem em que a função espera os argumentos para ser colocada na pilha, se a função ou o aplicativo é responsável pela limpeza da pilha e se os argumentos são passados nos registradores.
Fornece um mecanismo para estender as classes da biblioteca MFC.Você pode derivar classes classes MFC existentes e colocá-los em uma DLL de extensão MFC para uso por aplicativos MFC.
Facilita a criação de versões internacionais.Colocando recursos em uma DLL, é muito mais fácil criar versões internacionais de um aplicativo.Você pode colocar as seqüências de caracteres para cada versão de idioma do seu aplicativo em uma DLL de recurso separado e ter as versões de idioma diferente carregar os recursos apropriados.
Uma desvantagem em potencial do uso de DLLs é que o aplicativo não é autônomo; depende da existência de um módulo DLL separado.