Cosa sono i file DLL e perché uno dei miei PC manca?
Quando ricevi un errore che dice che Windows non riesce a trovare un particolare file DLL, può essere terribilmente tentato di scaricare il file da uno dei tanti siti DLL là fuori. Ecco perché non dovresti.
Cosa sono le DLL?
Prima di iniziare, perché non dovresti scaricare i file della Dynamic Link Library (DLL) da Internet, vediamo prima quali sono i file DLL. Un file DLL è una libreria che contiene un set di codice e dati per eseguire una particolare attività in Windows. Le app possono quindi richiamare quei file DLL quando hanno bisogno di tale attività. I file DLL sono molto simili ai file eseguibili (EXE), ad eccezione del fatto che i file DLL non possono essere eseguiti direttamente in Windows. In altre parole, non è possibile fare doppio clic su un file DLL per eseguirlo nello stesso modo in cui si farebbe con un file EXE. Invece, i file DLL sono progettati per essere chiamati da altre app. In realtà, sono progettati per essere richiamati da più app contemporaneamente. Anche la parte "link" del nome della DLL suggerisce un altro aspetto importante. Più DLL possono essere collegate insieme in modo che quando viene chiamata una DLL, vengono chiamate contemporaneamente anche altre DLL.
Windows stesso fa un ampio uso di DLL, come un tour attraverso il C: \ Windows \ System32
cartella può dirti. Come esempio di ciò di cui stiamo parlando, consideriamo il file di sistema di Windows "comdlg32.dll". Questo file, altrimenti noto come Common Dialog Box Library, contiene codice e dati per la creazione di molte delle finestre di dialogo comuni che vedi in Finestre di dialogo per cose come l'apertura di file, la stampa di documenti e così via. Le istruzioni in questa DLL gestiscono tutto da ricevere e interpretare i messaggi destinati alla finestra di dialogo per specificare come appare la finestra di dialogo sullo schermo. Ovviamente, più app possono richiamare questa DLL allo stesso tempo, altrimenti non sarebbe possibile aprire una finestra di dialogo (come quella in basso) in più di un'app alla volta.
Le DLL consentono la modularizzazione e il riutilizzo del codice, il che significa che gli sviluppatori non devono perdere tempo a scrivere codice da zero per eseguire funzioni banali o comuni. E sebbene gli sviluppatori creino le proprie DLL da installare con le proprie app, la maggior parte delle DLL chiamate da app sono in realtà in bundle con Windows o con pacchetti aggiuntivi, come Microsoft .NET Framework o Microsoft C ++ Redistributables. L'altro grande vantaggio del codice di modularizzazione in questo modo è che gli aggiornamenti sono più facili da applicare a ciascuna DLL piuttosto che a un'intera app, specialmente quando quelle DLL non provengono dallo sviluppatore dell'app. Ad esempio, quando Microsoft aggiorna determinate DLL nel suo .NET Framework, tutte le app che usano quelle DLL possono immediatamente sfruttare la sicurezza o la funzionalità aggiornate.
Le DLL scaricate potrebbero essere obsolete
Quindi, con un po 'di comprensione delle DLL sotto le nostre cinture, perché non scaricarle da Internet quando ne manca una nel sistema?
Il problema più comune che incontrerai con le DLL scaricate è che sono obsolete. Molti dei siti DLL là fuori ottengono le loro DLL semplicemente caricandole dal proprio computer o dai loro utenti. Probabilmente puoi già vedere il problema. La maggior parte di questi siti desidera solo il tuo traffico e, una volta caricata una DLL, hanno un piccolo incentivo per garantire che il file sia aggiornato. Aggiungete a ciò che i produttori non rilasciano normalmente DLL aggiornate al pubblico come singoli file, e potete vedere che anche i siti che provare mantenere i file aggiornati non è probabile che abbia molto successo.
C'è anche l'ulteriore problema che le DLL sono generalmente integrate nei pacchetti. Un aggiornamento a una DLL in un pacchetto è spesso accompagnato da aggiornamenti ad altre DLL correlate nello stesso pacchetto, il che significa che anche nell'improbabile eventualità che si ottenga un file DLL aggiornato, non si otterranno file correlati che hanno anche stato aggiornato.
Le DLL scaricate possono essere infettate
Anche se meno comune, un problema potenzialmente molto peggiore è che a volte le DLL scaricate da fonti diverse dal venditore possono essere caricate con virus o altri malware che possono infettare il PC. Questo è particolarmente vero per i siti che non sono troppo attenti su dove ottengono i loro file. E non è che quei siti facciano di tutto per dirti delle loro fonti rischiose. La parte davvero spaventosa è che se si scarica un file DLL infetto, si rischia, per la natura stessa dei file DLL, di fornire a tale file un accesso più approfondito rispetto a un normale file infetto..
La buona notizia è che una buona applicazione antivirus in tempo reale può in genere rilevare questi file DLL infetti prima che vengano effettivamente salvati nel sistema e impedire loro di fare danni. Tuttavia, è necessario ricordare che anche un ottimo programma antivirus potrebbe non fornire una protezione perfetta. Se hai l'abitudine di scaricare file rischiosi, è probabile che ti raggiunga a un certo punto. È meglio evitare solo questi siti DLL.
Probabilmente non risolveranno il tuo problema comunque
Mentre è possibile che solo un singolo file DLL sul tuo PC sia stato danneggiato o cancellato, è più probabile che anche altre DLL o relativi file app siano corrotti o mancanti. Il motivo per cui ricevi un errore su un particolare file è che si tratta del primo errore rilevato da un'app prima del crash e semplicemente non ti viene notificato il resto. Questo può essere vero indipendentemente dalla causa del problema.
Perché le DLL potrebbero scomparire o essere danneggiate? Potrebbe essere che un'altra app errata o aggiornamento abbia tentato di sostituire il file e non sia riuscito o sostituito con una copia non aggiornata. Potrebbe essere un errore nell'installazione della tua app principale o in un pacchetto come .NET. Potrebbe anche darsi che si stia verificando un altro problema, come i settori danneggiati sul disco rigido, che impediscono il corretto caricamento del file.
Come posso risolvere il mio errore DLL?
L'unico modo per assicurarsi di ottenere una DLL stabile, aggiornata e pulita è quella di ottenere attraverso la fonte da cui ha avuto origine. In genere, tale origine sarà:
- Il tuo supporto di installazione di Windows. È improbabile che tu possa semplicemente copiare un file DLL dal tuo supporto di installazione, ma hai una rapida opzione da provare prima di fare qualcosa di così drastico come il reindirizzamento di Windows. È possibile utilizzare lo strumento Protezione risorse di Windows (spesso definito come il controllo file di sistema o SFC), che eseguirà la scansione e correggerà i file di sistema corrotti o mancanti in Windows. Si dovrebbe avere a portata di mano il supporto di installazione quando si esegue lo strumento, nel caso in cui sia necessario copiare un file da lì. (Se non si dispone di un disco di installazione, è possibile scaricarne uno qui.)
- I pacchetti di Microsoft .NET Framework. Diverse versioni di .NET vengono installate automaticamente insieme a Windows e molte app installano anche i file da questi pacchetti. Puoi leggere il nostro articolo sul framework .NET, che ha anche alcuni consigli per trovare e riparare i problemi associati.
- Vari pacchetti ridistribuibili Microsoft Visual C ++. A seconda delle app utilizzate, è possibile che sul PC siano installate più versioni di C ++ Redistributable. A volte può essere difficile restringere quale è il colpevole, ma un buon punto di partenza è il nostro articolo su C ++ Redistributables, che presenta anche diversi passaggi per la risoluzione dei problemi e collegamenti in cui è possibile scaricare le versioni più aggiornate direttamente da Microsoft.
- L'app con cui è arrivata la DLL. Se la DLL è stata installata insieme a un'app anziché essere parte di un pacchetto separato, la soluzione migliore è semplicemente reinstallare l'app. Alcune app consentono di eseguire una riparazione anziché una reinstallazione completa. Entrambe le opzioni dovrebbero funzionare, dal momento che una riparazione in genere cerca i file mancanti nelle cartelle di installazione.
Se tutto ciò non riesce, potresti essere in grado di contattare il fornitore dell'app e richiedere una copia di un singolo file DLL. Alcune società sono aperte a questa richiesta; alcuni non lo sono. Se ti imbatti in una società che non fornirà singoli file, almeno potrebbero essere in grado di offrire altri suggerimenti per risolvere il tuo problema.