CONDIVISIONE
DELLE DLL
Come si è ripetuto
più volte uno dei vantaggi delle Librerie è la condivisione
delle loro funzioni con un conseguente risparmio di codice.
Questo vantaggio comporta però un'importante problematica:
quando una disinstallazione può rimuovere un libreria
condivisa da più programmi?
La risposta si trova,
come spesso accade, nel Registry di Windows nella chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls
Tutte le librerie
condivise che vengono installate sulla macchina vengono
inserite in questa chiave e viene dato loro un valore
che funge da contatore. Ogni volta che viene installato/rimossa
un'applicazione che sfrutta quella determinata DLL il
suo contatore viene incrementato/decrementato.

Quando un programma
viene rimosso controlla il valore di questa chiave per
saper se il file .Dll che aveva precedentemente installato è utilizzate da
altri software.
Se il contatore è a 0 viene proposta l'eliminazione.
ALCUNE
DLL
Ecco un lista di alcune
delle Librerie più utilizzate e la loro descrizione:
Filename
|
Version
|
Description
|
Msvcrt.dll |
6.00.8337
|
Run-Time di
Visual C++ |
Oleaut32.dll |
2.30.4265
|
Parte di OLE-AUT
che complementa Microsoft Foundation Classes (MFC)
and Visual Basic run-time. |
Olepro32.dll |
5.00.4265
|
Parte di OLE-AUT
che complementa MFC e Visual Basic run-time. |
Asycfilt.dll |
2.30.4265
|
Parte di OLE-AUT
che complementa MFC e Visual Basic run-time. |
Stdole2.tlb |
2.30.4265
|
Parte di OLE-AUT
che complementa MFC e Visual Basic run-time. |
Mfc42.dll |
6.00.8267
|
Microsoft Foundation
Class (MFC), Dipendente da Msvcrt.dll, ComCtl32.dll,
e OLE-AUT files. |
Mfc42u.dll |
6.00.8267
|
MFC Unicode
solo per Windows Nt |
Regsvr32.exe |
|
Eseguibile
per registrare le Dll. |
RegTlib.exe |
|
Eseguibile
per registrare I file .Tlb |
CONCLUSIONI
Le Librerie Dinamiche
sono una parte fondamentale del sistema Windows. Hanno
grandi potenzialità ma dal punto di vista del risparmio
di codice e degli aggiornamenti.
In via teorica, come si diceva all'inizio, è possibile
rivoluzionare, aggiornare o "aggiustare" un intero programma
sostituendo una semplice Dll.
Purtroppo la realtà è un po' diversa: la maggior parte delle Librerie
sono situate nella cartella Windows\System e sono condivise da più
programmi e questo provoca spesso problemi di compatibilità.
Facciamo un esempio:
il Computer ha già installato una libreria Correttore.Dll.
Il programma di videoscrittura Write, all'installazione, sovrascrive
il file con una sua versione più recente che comprende
una particolare funzione aggiuntiva TrovaSinonimi.
A questo punto il primo dei due programmi installati non funzionerà
correttamente perché l'installazione del secondo avrà sostituito la
libreria Correttore.Dll.
Questo è uno dei principali problemi di compatibilità tra i software.
Altri problemi si verificano nel "pericoloso" Registro di Configurazione
ma l'incognita più forte sta proprio nel contenuto di queste librerie.
Ne esistono a centinaia ed ognuna di esse contiene decine di funzioni.
La documentazione che indichi le dipendenze tra i vari file e quali funzioni
contengano scarseggia e questo obbligherà sempre più spesso
a formattare o reistallare programmi al primo messaggio
di errore o addirittura impedirà all'utente di far convivere
sulla propria macchina applicazioni che entrano in conflitto.
|