Compartilhar via


Vantagens da vinculação dinâmica

A vinculação dinâmica tem as seguintes vantagens em relação à vinculação estática:

  • Vários processos que carregam a mesma DLL no mesmo endereço base compartilham uma única cópia da DLL na memória física. Isso salva a memória do sistema e reduz a troca.
  • Quando as funções em uma DLL são alteradas, os aplicativos que as usam não precisam ser recompilados ou revinculados, desde que os argumentos de função, convenções de chamada e valores retornados não sejam alterados. Por outro lado, o código de objeto vinculado estaticamente requer que o aplicativo seja revinculado quando as funções forem alteradas.
  • Uma DLL pode fornecer suporte pós-mercado. Por exemplo, uma DLL de driver de exibição pode ser modificada para dar suporte a uma exibição que não estava disponível quando o aplicativo foi inicialmente enviado.
  • Programas escritos em diferentes linguagens de programação podem chamar a mesma função de DLL, desde que os programas sigam a mesma convenção de chamada que a função usa. A convenção de chamada (como C, Pascal ou chamada padrão) controla a ordem na qual a função de chamada deve enviar os argumentos por push para a pilha, se a função ou a função de chamada é responsável pela limpeza da pilha e se algum argumento é passado em registros. Para obter mais informações, consulte a documentação incluída no compilador.

Uma desvantagem potencial para o uso de DLLs é que o aplicativo não é autossuficiente; depende da existência de um módulo DLL separado. O sistema encerrará os processos usando a vinculação dinâmica de tempo de carga se eles exigirem uma DLL que não seja encontrada na inicialização do processo e fornecer uma mensagem de erro ao usuário. O sistema não encerra um processo usando a vinculação dinâmica em tempo de execução nessa situação, mas as funções exportadas pela DLL ausente não estão disponíveis para o programa.