Partager via


Avantages de la liaison dynamique

La liaison dynamique présente les avantages suivants par rapport à la liaison statique :

  • Plusieurs processus qui chargent la même DLL au même adresse de base partagent une seule copie de la DLL en mémoire physique. Cela permet d’économiser la mémoire système et de réduire l’échange.
  • Lorsque les fonctions d’une DLL changent, les applications qui les utilisent n’ont pas besoin d’être recompilées ou relinkées tant que les arguments de fonction, les conventions d’appel et les valeurs de retour ne changent pas. En revanche, le code objet lié statiquement nécessite que l’application soit relinkée lorsque les fonctions changent.
  • Une DLL peut fournir une prise en charge après le marché. Par exemple, une DLL de pilote d’affichage peut être modifiée pour prendre en charge un affichage qui n’était pas disponible lorsque l’application a été initialement livrée.
  • Les programmes écrits dans différents langages de programmation peuvent appeler la même fonction DLL tant que les programmes suivent la même convention d’appel que celle utilisée par la fonction. La convention d’appel (par exemple, C, Pascal ou appel standard) contrôle l’ordre dans lequel la fonction appelante doit envoyer (push) les arguments sur la pile, que la fonction ou la fonction appelante soit chargée de nettoyer la pile et si les arguments sont passés dans les registres. Pour plus d’informations, consultez la documentation fournie avec votre compilateur.

Un inconvénient potentiel à l’utilisation de DLL est que l’application n’est pas autonome ; cela dépend de l’existence d’un module DLL distinct. Le système met fin aux processus à l’aide de la liaison dynamique au moment du chargement s’ils nécessitent une DLL introuvable au démarrage du processus et donne un message d’erreur à l’utilisateur. Le système n’arrête pas un processus à l’aide de la liaison dynamique au moment de l’exécution dans ce cas, mais les fonctions exportées par la DLL manquante ne sont pas disponibles pour le programme.