Fördelar med dynamisk länkning
Dynamisk länkning har följande fördelar jämfört med statisk länkning:
- Flera processer som läser in samma DLL på samma basadress delar en enda kopia av DLL:en i fysiskt minne. Detta sparar systemminnet och minskar bytet.
- När funktionerna i en DLL ändras behöver de program som använder dem inte omkompileras eller länkas om så länge funktionsargumenten, anropande konventioner och returvärden inte ändras. Statiskt länkad objektkod kräver däremot att programmet länkas om när funktionerna ändras.
- En DLL kan ge eftermarknadsstöd. Till exempel kan en DLL för visningsdrivrutin ändras för att stödja en visning som inte var tillgänglig när programmet ursprungligen levererades.
- Program som skrivits på olika programmeringsspråk kan anropa samma DLL-funktion så länge programmen följer samma anropskonvention som funktionen använder. Anropskonventionen (till exempel C, Pascal eller standardanropet) styr i vilken ordning anropsfunktionen måste skicka argumenten till stacken, om funktionen eller den anropande funktionen ansvarar för att rensa stacken och om några argument skickas i register. Mer information finns i dokumentationen som ingår i kompilatorn.
En potentiell nackdel med att använda DLL:er är att programmet inte är fristående. det beror på förekomsten av en separat DLL-modul. Systemet avslutar processer med dynamisk länkning med inläsningstid om de kräver en DLL som inte hittas vid processens start och ger användaren ett felmeddelande. Systemet avslutar inte en process med dynamisk körningslänkning i den här situationen, men funktioner som exporteras av den saknade DLL-filen är inte tillgängliga för programmet.