Vantagens de usar DLLs
Vincular dinâmico tem as seguintes vantagens:
Salva a memória e reduz alternar. Muitos processos podem usar um único DLL simultaneamente, compartilhando uma única cópia da DLL na memória. Em contraste, o windows devem carregar uma cópia do código de biblioteca na memória para cada aplicativo que é criado com uma biblioteca de vínculo estático.
Salva o espaço em disco. Muitos aplicativos podem compartilhar uma única cópia da DLL no disco. Em contraste, cada aplicativo compilado com uma biblioteca de vínculo estáticos têm o código de biblioteca vinculado na imagem executável como uma cópia separada.
As atualizações para a DLL são mais fáceis. Quando as funções em uma DLL mudam, os aplicativos que os utilizam não precisam ser recompilados ou relinked como argumentos e os valores de retorno da função não são alterados. Em contraste, o código do objeto vinculado estaticamente requer que o aplicativo relinked quando a alteração de funções.
Fornece suporte de compras de acessórios. Por exemplo, uma DLL do driver de vídeo pode ser alterado para oferecer suporte a uma exibição que não está disponível quando o aplicativo foi enviado.
Oferece suporte multilíngue programas. Os programas gravados em linguagens de programação diferentes podem chamar a mesma função da DLL à medida que os programas seguem a convenção de chamada de função. Os programas e a função da DLL devem ser compatíveis das seguintes maneiras: a ordem em que a função espera que os argumentos ser variável na pilha, se a função ou o aplicativo é responsável pela limpeza da pilha, e se qualquer argumento for transmitido em registros.
Fornece um mecanismo para estender as classes de biblioteca MFC. Você pode derivar classes das classes existentes MFC e colocá-las em uma DLL de extensão MFC para os aplicativos usam MFC.
Facilita a criação de versões internacionais. Colocar recursos em uma DLL, é muito mais fácil criar versões internacionais de um aplicativo. Você pode colocar as cadeias de caracteres para cada versão do idioma do aplicativo em uma DLL de recurso separado e fazer com que as versões de idioma diferentes carregar os recursos adequados.
Uma desvantagem potencial para usar DLL é que o aplicativo não é independente; depende da existência de um módulo separado da DLL.