If-Koubou

Koje su DLL datoteke i zašto nedostaje moj PC?

Koje su DLL datoteke i zašto nedostaje moj PC? (Kako da)

Kada dođete do pogreške govoreći da Windows ne može pronaći određenu DLL datoteku, može biti užasno primamljivo preuzeti datoteku s jedne od mnogih DLL web-mjesta vani. Evo zašto ne biste trebali.

Što su DLL-ovi?

Prije nego što započnemo zašto ne biste preuzeli datoteke DLL (Dynamic Link Library) s interneta, prvo ćemo pogledati koje su DLL datoteke. DLL datoteka je knjižnica koja sadrži skup koda i podataka za obavljanje određene aktivnosti u sustavu Windows. Aplikacije tada mogu pozvati one DLL datoteke kada im je potrebna takva aktivnost. DLL datoteke su puno poput izvršnih (EXE) datoteka, osim što se DLL datoteke ne mogu izravno izvršiti u sustavu Windows. Drugim riječima, ne možete dvaput kliknuti datoteku DLL da biste ga pokrenuli na isti način kao i EXE datoteka. Umjesto toga, DLL datoteke osmišljene su za pozivanje drugih aplikacija. Zapravo, osmišljeni su da ih više odjednom pozovu više aplikacija. Dio "veze" naziva DLL također sugerira još jedan važan aspekt. Višestruki DLL-ovi mogu se povezati tako da kada se poziva jedan DLL, istodobno se poziva i niz drugih DLL-ova.

Windows sama koristi veliku upotrebu DLL-ova, kao turneju kroz C: \ Windows \ System32 mapa vam može reći. Kao primjer onoga o čemu govorimo, razmotrimo datoteku sustava Windows "comdlg32.dll". Ova datoteka, inače poznata kao zajednička biblioteka dijaloškog okvira, sadrži kod i podatke za izgradnju mnogih uobičajenih dijaloških okvira u Windows-dijaloge za stvari kao što su otvaranje datoteka, ispis dokumenata i tako dalje. Upute u ovom DLL-u rješavaju sve od primanja i tumačenja poruka namijenjenih dijaloškom okviru kako bi se odredilo kako dijaloški okvir izgleda na vašem zaslonu. Očito, više aplikacija može istovremeno pozvati DLL, inače ne biste mogli otvoriti dijaloški okvir (poput onog u nastavku) u više od jedne aplikacije odjednom.

DLL-ovi omogućuju modularizaciju i ponovnu upotrebu kodeksa, što znači da programeri ne moraju trošiti vrijeme za pisanje koda od nule da bi obavili svjetovne ili zajedničke funkcije. I iako će programeri izraditi vlastite DLL-ove za instalaciju pomoću svojih aplikacija, velika većina DLL-ova koje se zovu aplikacijama zapravo su u paketu sa sustavom Windows ili s dodatnim paketima, kao što su Microsoft .NET Framework ili Microsoft C ++ Redistributables. Druga velika prednost modulariziranja kodova na taj način jest da se ažuriranja lakše primjenjuju na svaki DLL, a ne na cijelu aplikaciju - pogotovo kada ti DLL-ovi nisu dolazili od razvojnog programera aplikacije. Na primjer, kada Microsoft ažurira određene DLL-ove u svom .NET Okviru, sve aplikacije koje koriste te DLL-ove mogu odmah iskoristiti ažuriranu sigurnost ili funkcionalnost.

Datoteke preuzete DLL mogu biti zastarjele

Dakle, s malo razumijevanja DLL-ova pod našim pojasevima, zašto ih ne preuzimamo s interneta kada netko nedostaje vašem sustavu?

Najčešći problem s kojim ćete se pokrenuti s preuzetim DLL-om jest da su zastarjeli. Mnoge od DLLs stranica tamo dobiti svoje DLLs samo ih upload iz vlastite - ili njihovih korisnika računala. Vjerojatno ste već vidjeli problem. Većina tih web lokacija samo želi vaš promet, a nakon što se prenesu DLL, nemaju poticaja da se datoteka ažurira. Dodajte tome da dobavljači obično ne objavljuju ažurirane DLL-ove javnosti kao pojedinačne datoteke, a možete vidjeti i one web-lokacije kojeprobati da bi se datoteke ažurirane nisu vjerojatno da će biti vrlo uspješne.

Postoji i dodatni problem da su DLL obično integrirani u pakete. Ažuriranje jednog DLL-a u paketu često prati ažuriranja drugih DLL-ova u istom paketu, što znači da čak i ako vjerojatno ne dobijete ažuriranu DLL datoteku, nećete dobiti povezane datoteke koje također imaju je ažuriran.

Preuzimanje DLL-ova može biti zaraženo

Iako je manje uobičajen, potencijalno mnogo lošiji problem je da DLL koje preuzimate iz drugih izvora osim prodavača ponekad može biti učitan s virusima ili drugim zlonamjernim softverom koji može zaraziti vaše računalo. To se osobito odnosi na web stranice koje nisu previše pažljive o tome gdje se nalaze njihove datoteke. I nije kao da će te web stranice otići na put da vam kažem o svojim rizičnim izvorima. Stvarno zastrašujući dio je taj da ako preuzmete zaraženu DLL datoteku, riskirate samu prirodu DLL datoteka - dajući im dublje pristup podacima od redovne zaražene datoteke.

Dobra je vijest da dobra, protuvirusna aplikacija u stvarnom vremenu obično otkriva ove zaražene DLL datoteke prije no što ih se zapravo spremaju u vaš sustav i spriječe da učine bilo kakvu štetu. Ipak, morate zapamtiti da čak i veliki antivirusni program možda vam ne pruža savršenu zaštitu. Ako ste navikli preuzeti rizične datoteke, vjerojatno ćete u nekom trenutku nadoknaditi. Najbolje je da izbjegavate ove DLL stranice.

Vjerojatno neće riješiti vaš problem

Iako je moguće da samo jedna DLL datoteka na vašem računalu bude oštećena ili izbrisana, vjerojatnije je da su drugi DLL ili povezane datoteke aplikacija također korumpirani ili nedostaju. Razlog zbog kojeg ste dobili pogrešku o određenoj datoteci jest da je to prva pogreška koju je aplikacija naišla prije pada i jednostavno se ne obavještavate o ostatku. To može biti istina bez obzira na uzrok problema.

Zašto DLL nedostaje ili je oštećen? Može biti da je neka druga pogrešna aplikacija ili ažuriranje pokušala zamijeniti datoteku i nije uspjela ili je zamijenila zastarjelom kopijom. Možda je pogreška u instalaciji vaše glavne aplikacije ili u paketu kao što je .NET. Možda je čak i da imate problema s lošim diskom - poput onih loših sektora - koji sprječavaju ispravno učitavanje datoteke.

Kako mogu popraviti moju pogrešku DLL?

Jedini način da dobijete stabilnu, ažuriranu i čistu DLL jest da ga dobijete kroz izvor iz kojeg je nastao. Tipično, taj izvor bit će:

  • Vaš instalacijski medij za Windows, Malo je vjerojatno da ćete moći jednostavno kopirati datoteku DLL s instalacijskog medija, ali imate brzu opciju da pokušate prije nego što radite nešto drastično kao što je ponovna instalacija sustava Windows. Možete koristiti alat za zaštitu resursa sustava Windows (često se naziva skenerom datoteke sustava ili SFC) koji će skenirati i popraviti oštećene ili nestalne datoteke sustava u sustavu Windows. Trebali biste imati instalacijski medij pri ruci prilikom pokretanja alata, samo u slučaju da treba kopirati tu datoteku. (Ako nemate instalacijski disk, ovdje možete preuzeti jedan.)
  • Paketi Microsoft .NET Framework, Uz verzije sustava Windows automatski se instaliraju nekoliko inačica .NET-a, a mnoge aplikacije također instaliraju datoteke s tih paketa. Možete čitati naš članak o .NET okviru, koji također ima neke savjete za pronalaženje i popravljanje povezanih problema.
  • Razni Microsoft Visual C ++ redistributivni paketi, Ovisno o aplikacijama koje upotrebljavate, na vašem računalu možete instalirati više verzija C ++ redistributable. Ponekad je teško ograničiti tko je krivac, ali dobro je mjesto za početak našeg članka o C ++ redistributabilnim datotekama, koji također sadrži nekoliko koraka za otklanjanje poteškoća i veze na kojima možete preuzeti najnovije verzije izravno od Microsofta.
  • Aplikacija s kojom je DLL došao, Ako je DLL instaliran zajedno s aplikacijom umjesto da je dio zasebnog paketa, vaša je najbolja opcija da ponovno instalirate aplikaciju. Neke aplikacije omogućuju vam da izvršite popravak umjesto pune ponovne instalacije. Bilo koja opcija bi trebala funkcionirati jer popravak obično traži datoteke koje nedostaju u instalacijskim mapama.

Ako sve to ne uspije, možda ćete se moći obratiti dobavljaču aplikacije i zatražiti kopiju pojedine DLL datoteke. Neke tvrtke su otvorene za ovaj zahtjev; neki nisu. Ako se prijavite u tvrtku koja ne pruža pojedinačne datoteke, barem će možda moći ponuditi druge prijedloge za rješavanje vašeg problema.