Dynamic-link library: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ValterVBot (discussione | contributi)
m Bot: Elimino interlinks vedi Wikidata
Nessun oggetto della modifica
Riga 8:
Un altro vantaggio è la possibilità di aggiornare un programma modificando solo le DLL: inserendo una versione diversa della DLL, che contiene ad esempio dei ''[[bug fix]]'', tutti i programmi che la usano saranno automaticamente "aggiornati" senza bisogno di essere ricompilati.
 
Il principale svantaggio è legato al fatto che una nuova versione di una DLL potrebbe effettuare dei cosiddetti ''breaking changes'', in modo volontario o, inconsapevolmente, a causa di bug nella nuova versione. Un breaking change è unaun cambiamento critico nel comportamento del codice della funzione che la rende non più compatibile con le convenzioni in uso (ad esempio, una funzione che prima restituiva NULL in caso di errore nei parametri e che ora setta ''[[errno]]'' e restituisce un valore non nullo). Ancora più critico il caso in cui un programma di installazione sovrascriva una DLL con una versione più vecchia. Altri problemi possono verificarsi in ambiente [[Component Object Model#Inferno delle DLL|COM]]. Questi problemi, ben noti ai programmatori [[Windows]], sono raggruppati sotto il nome di ''DLL hell'' (''inferno delle DLL'').
 
In alcuni sistemi operativi, tipicamente [[Unix]] e [[Unix-like]], è possibile far convivere versioni diverse, fra loro incompatibili, di una stessa libreria, purché siano singolarmente presenti sul [[file system]] in differenti [[Pathname|percorsi]] e sia possibile, in fase di collegamento del programma, l'identificazione della versione corretta di libreria da utilizzare. In questa maniera, i programmi collegati prima dell'installazione della nuova libreria possono continuare ad avvalersi della vecchia versione.<ref>[http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/HTML/AA-PS30D-TET1_html/peg5.html#version_check_at_load Sito HP, Manuale Digital Unix: Controllo versione librerie in fase di caricamento]</ref>