Lucrul cu biblioteci de linkuri dinamice (DLL). Exemple de utilizare a DLL în diferite limbi. Încărcarea și importul dintr-un DLL în timpul rulării

Uneori, la pornirea unui program, apare un mesaj că *. dll(de exemplu, VCompLib.dll) sau *. ocx(de ex. seon.ocx). În acest caz, programul, desigur, nu pornește.

Mesajele de eroare pot fi diferite (acest lucru depinde în principal de limba în care este scris programul), de exemplu: „Componenta „MSCOMM32.OCX” nu este înregistrată corect: fișierul lipsește sau este invalid” , sau „Aplicația nu a pornit deoarece MSVBVM50.DLL nu a fost găsit. Reinstalarea aplicației poate rezolva această problemă", sau „Eroare fișier DLL/OCX Runtime”. În același timp, în Windows Vista va apărea o fereastră suplimentară Asistent pentru compatibilitatea programelor cu un mesaj Acest program necesită o componentă Windows lipsă.

Informatie scurta

· DLL (din engleza. Biblioteca Dynamic-L de cerneală L biblioteca de linkuri dinamice)conceptul de sistem de operare Microsoft Windows ; o bibliotecă dinamică care permite utilizarea multiplă de către diverse aplicații software. K DLL uneori denumite și controale ActiveXȘi . În lume UNIX funcţii similare sunt îndeplinite de aşa-numitele obiecte comune(„obiecte comune”). Tipul fisierului *. dll urmează aceleași convenții ca *. executabil, combinând cod, tabele și resurse.

ActiveX numele unui grup de tehnologii dezvoltate Microsoft pentru programarea aplicațiilor de obiecte componente bazate pe model COM.

COM(abreviat din engleză. Model de obiecte componente) model obiect component Microsoft, un mecanism standard care include interfețe prin care unele obiecte își oferă serviciile altora; stă la baza multor tehnologii obiect, inclusiv OLEȘi ActiveX).

OLE(abreviat din engleză. Legarea și încorporarea obiectelor) nume comun (până în 1996) pentru un grup de tehnologii orientate pe obiecte Microsoft bazat COM (OLE 1, OLE 2, Automatizare OLE, Baza de date OLE si etc.).

· Control ActiveXelement de control ActiveX; introdus în 1996 Microsoft nume nou pentru componentele programabile independente, numite anterior comenzi OLE, OCX-uri, Controale personalizate OLE; spre deosebire de acestea din urmă, vă permit să lucrați cu Internet.

· OCX(abreviat din engleză. Extensie personalizată OLE) comenzi mobile, Control personalizat OLE, Control OLE. Putem spune că fișierele *. ocx acestea sunt controale ActiveX, care îndeplinesc aproximativ aceleași funcții ca *. dll.

· Control personalizat OLEelement de control specializat OLE, Control OLE.

Control OLE elemente de control OLE, componente de aplicație programabile cu o interfață bazată pe OLE, permițându-vă să le includeți cu ușurință în alte aplicații; din 1996 sunt numite Control ActiveX. Sinonime: OCX, Control OLE personalizat.

Modalități de a rezolva problema

Dacă întâmpinați erori legate de *. dllȘi *. ocx, necesar:

1. Reinstalați programul.

2. Dacă reinstalarea programului nu ajută, trebuie să verificați prezența fișierelor necesare în sistem. Fișiere *. dllȘi *. ocx, de regulă, ar trebui să fie localizat în folder \WINDOWS\system32(mai rar - în directorul unui anumit program). Dacă fișierele sunt prezente, aveți nevoie de ele.

Dacă fișierele necesare nu sunt acolo, găsiți-le pe Internet, descărcați-le și copiați-le în folderul \WINDOWS\system32 și în directorul programului. Acum ai nevoie de ele.

La înregistrare *. dllȘi *. ocx sunt înregistrate în Registrul Windows(acest lucru se poate face și manual). Totuși, în fir parametrul este creat REG_DWORD, de exemplu C:\Program Files\InterVideo\Common\Bin\StorageTools.dll sau C:\WINDOWS\System32\MSCOMCTL.OCX, cu valoarea 1 .

Înregistrare *. dllȘi *. ocx efectuate folosind serverul de înregistrare regsvr32.exe(a cărui adresă de disc este C:\WINDOWS\system32).

Luați în considerare metodele de înregistrare:

1. Faceți clic Start - Run... - Run program - regsvr32 filename - OK.

2. Faceți clic Start - Run... - Run program - cmd - OK. Va porni interpretul de comenzi cmd.exe, după solicitarea sistemului C:\Documente și setări\Nume utilizator> introduce regsvr32 nume de fișier, de exemplu, regsvr32 seon.ocx.

3. Dacă utilizați manager de fișiere Comandant total , te poti inregistra *. dllȘi *. ocx folosind linia de comandă Comandant total.

Notă

Utilizarea comenzilor regsvr32:

regsvr32 ] fișier dll

/u- anularea inregistrarii DLL;

/s– modul „silențios” – ferestrele de mesaje nu sunt afișate;

Una dintre cele mai greșeli comune pe Windows, acestea sunt erori cu bibliotecile DLL. Este important să știți cum pot fi remediate fără a reinstala sistemul de operare.


Windows dă o eroare cu un fișier DLL și nu știi ce să faci? Nu vă faceți griji, aveți cel puțin 3 opțiuni pentru a rezolva orice problemă de această natură. Documentele de sistem sunt responsabile pentru muncă stabilă nu numai sistemul de operare în sine, ci și programele terțe, așa că va fi util să aflați cum să remediați toate problemele

Fișierele cu extensia .DLL sunt fișiere de sistem, care sunt utilizate atât de Windows, cât și de programe de la terți. Fișierele cu această permisiune sunt adesea cauza problemelor, dar sistemul însuși avertizează despre ele. Dacă vreun fișier este defect, atunci veți vedea un mesaj de eroare ca acesta:

Când vedeți un astfel de mesaj, trebuie să fiți atenți la ce fișier se referă fereastra. Cel mai bine este nu numai să vă amintiți, ci și să scrieți numele acestui fișier. Problemele cu ele sunt bune, deoarece sistemul în sine vă anunță unde să căutați rădăcina problemei.

Cum să remediați greșelile

Există trei moduri de a o remedia:

  • Restaurați sistemul;
  • Suprascrieți fișierul necesar;
  • Utilizați programe universale;

Restaurarea sistemului este o metodă cardinală pe care este mai bine să nu o aplicați dacă aveți o singură eroare. Această metodă este bună doar dacă aveți probleme masive și sistemul este extrem de instabil. Pentru a putea restaura sistemul, trebuie să creați un punct de restaurare în avans sau să aveți backupîntregul OS. Dacă citiți acest material într-o zi în care nu aveți nicio problemă, atunci vă recomandăm să creați o copie de rezervă sau un punct de restaurare chiar acum. Acest lucru se poate face folosind programe speciale sau pur și simplu utilizați funcționalitatea standard a dumneavoastră sistem de operare.

Suprascrierea fișierului necesar este ideală dacă aveți doar unul. În acest caz, trebuie să găsiți biblioteca necesară pe Internet și să o suprascrieți numai. Când căutați o bibliotecă, specificați în același timp în ce secțiune de pe computer se află aceasta. De asemenea, nu uitați că fișierele diferă în funcție de adâncimea de biți a sistemului de operare. Dacă aveți Windows 32 de biți, atunci aveți nevoie de bibliotecă x32, facem același lucru cu Windows 64 de biți, scriem acolo doar biblioteci de 64 de biți.

A treia modalitate este de a folosi programe specializate, cel mai simplu. De exemplu, puteți folosi , dar există și alte utilități. Astfel de programe vă pot analiza dispozitivul, găsi totul și le pot repara automat. Vă recomandăm să utilizați numai versiuni gratuite de programe, deoarece omologii plătiți diferă rareori unul de celălalt. Eliminarea automată este posibilă numai dacă dificultățile dumneavoastră nu sunt critice și sistemul în ansamblu continuă să funcționeze corect.

Probleme populare

Există mai multe DLL-uri problematice care cauzează probleme mai des decât altele. Aceste biblioteci includ următoarele:

  • d3d11;
  • dxgi;
  • msvcr100;
  • unarc;
  • xlive;
  • openal32;

Toate aceste probleme sunt legate de pachetul DirectX. Pentru a le remedia, trebuie doar să descărcați și să reinstalați pachetul. Drept urmare, veți elimina astfel de dificultăți pe computerul dvs. Windows. Iată o altă modalitate dacă niciunul din acest articol nu a funcționat pentru tine:

Fișierele în format DLL se deschid programe speciale. Există 2 tipuri de formate DLL, fiecare dintre ele se deschide diferite programe. Pentru a deschide tipul de format dorit, studiați descrierile fișierelor și descărcați unul dintre programele sugerate.

Cum se deschide un fișier DLL

Programul HELPER.DLL vă va ajuta să găsiți și să instalați orice DLL lipsă sau corupt.

Fișierele în format DLL conțin setări de link către diverse resurse utilizate de program, cum ar fi pictogramele. DLL-urile sunt exclusiv pentru sistemul de operare Windows. Pe alte sisteme de operare, astfel de fișiere pot fi deschise numai folosind emulatori (aplicațiile multiplatforme pentru Mac OS sunt o excepție). Trebuie amintit că programele moderne nu acceptă fișiere pentru arhitectura pe 16 biți.

Masuri de precautie

În cele mai multe cazuri, utilizatorul nu trebuie să deschidă fișierele DLL, deoarece acestea sunt destinate exclusiv dezvoltatorilor. Editarea acestui fișier poate afecta negativ performanța programe individualeși sistemul de operare, din acest motiv trebuie să găsiți fișierul Dll și să faceți o copie a acestuia.

Programe pentru deschiderea fișierelor DLL

Vizualizați codul sursă

Una dintre cele mai comune moduri de a vizualiza extensia Dll este . Programul are funcții încorporate pentru decompilarea unor fișiere, astfel încât să puteți depana fișierele dll și, cel mai important, este complet gratuit. Desigur, este imposibil să se garanteze afișarea corectă a codului pentru toate fișierele.

Alternativ, poate fi folosit decompilatorul dotPeek. De asemenea, este gratuit, dar poate funcționa numai cu programe scrise în C#.

Personalizarea interfeței programului

În acest scop, este cel mai potrivit. Cu acest program, puteți schimba cu ușurință pictogramele, dialogurile sau puteți configura propria animație. Din păcate, programul este plătit chiar și pentru uz necomercial. Vă rugăm să rețineți că pot apărea probleme cu fișierele mari (aproximativ 1 GB sau mai mult).

Depanare

cu cel mai mult într-un mod simplu este de a folosi Visual Studio de la Microsoft. E dragut instrument funcțional, ale cărui capabilități includ depanarea programului, dar va ajuta doar dacă fișierul nu are protecție.

Dacă trebuie doar să descărcați DLL-ul dosar spart(sau lipsește Dll), atunci DLL-helper vă va ajuta aici - un program complet gratuit.

Pagini web dinamice

Există un alt format DLL - fișiere care generează cod pentru site-uri. Astfel de biblioteci pot fi deschise în orice mediu confortabil dezvoltare, de exemplu Studio vizual. Browserul vă va ajuta să le testați în acțiune. Mai bine de folosit ultimele versiuni browsere populare, altfel este posibil ca fișierul să nu se afișeze corect.

O pagină web care este generată automat în timpul accesului utilizatorului. Poate combina scripturi de pe partea serverului, cum ar fi Perl sau , care generează -code pentru paginile web.

Paginile web din fișierele cu extensii DLL sunt cel mai adesea stocate pe serverele web Microsoft IIS. Extensia DLL trebuie să fie mapată la motorul de scripting de server corespunzător pentru a procesa pagina corect.

Un fișier de bibliotecă compilat care conține un set de proceduri și/sau drivere care sunt referite și executate de un program. Permite diferitelor programe să acceseze funcțiile sistemului public prin biblioteci standard. Poate fi conectat dinamic într-un program în timp ce acesta rulează.

Multe fișiere DLL (citiți DLL) sunt furnizate de operator sistem Windows, alții fac parte programe Windows. De asemenea, oferă diverse funcții software, cum ar fi conectarea cu dispozitive externe și intrarea și ieșirea semnalului. hard disk. Ele pot fi, de asemenea, referite prin aplicații multiplatforme pentru Mac.

Notă: Eliminarea sau modificarea conținutului unui fișier DLL poate cauza erori în programul care face referire la fișier. Prin urmare, fișierele DLL nu trebuie deschise sau editate.

8 răspunsuri

Ce este un DLL?

Bibliotecile de linkuri dinamice (DLL) sunt similare cu EXE-urile, dar nu sunt direct executabile. Sunt similare cu fișierele .so din Linux/Unix. Cu alte cuvinte, DLL este o implementare a bibliotecilor partajate MS.

Fișierele DLL sunt similare cu EXE prin faptul că formatul fișierului în sine este același. Atât EXE, cât și DLL se bazează pe formatul Portable Executable (PE). DLL-urile pot conține, de asemenea, componente COM și biblioteci .NET.

Ce conține un DLL?

Un DLL conține funcții, clase, variabile, interfețe utilizator și resurse (cum ar fi pictograme, imagini, fișiere,...) pe care le folosește un EXE sau o altă bibliotecă.

Tipuri de biblioteci:

În aproape toate sistemele de operare, există 2 tipuri de biblioteci. Biblioteci statice și biblioteci dinamice. ÎN Extensii Windows fișierele sunt după cum urmează: biblioteci statice (.lib) și biblioteci dinamice (.dll). Principala diferență este că bibliotecile statice sunt legate de executabil în timpul compilării; în timp ce bibliotecile legate dinamic nu sunt conectate până la runtime.

Mai multe despre bibliotecile statice și dinamice:

De obicei, nu vedeți biblioteci statice pe computer, deoarece o bibliotecă statică este construită direct în interiorul unui modul (EXE sau DLL). O bibliotecă dinamică este un fișier de sine stătător.

Un DLL poate fi modificat în orice moment și este încărcat numai în timpul execuției atunci când EXE încarcă în mod explicit DLL-ul. O bibliotecă statică nu poate fi schimbată după ce a fost compilată într-un EXE. Un DLL poate fi actualizat individual fără a actualiza EXE în sine.

Un program încarcă un DLL atunci când este rulat prin API-ul Win32 LoadLibrary sau când este dependent de un alt DLL. Programul folosește GetProcAddress pentru a încărca o funcție sau LoadResource pentru a încărca o resursă.

Lectură suplimentară:

Întrebări înrudite


Întrebări similare

Ce este un DLL?

Fișierele DLL sunt fișiere binare care pot conține cod executabil și resurse precum imagini etc. Spre deosebire de aplicații, acestea nu pot fi executate direct, dar aplicația le încarcă după cum este necesar (sau imediat în timpul pornirii).

Cât de importante sunt ele?

Majoritatea aplicațiilor încarcă fișierele DLL de care au nevoie la pornire. Dacă oricare dintre acestea nu este găsită, sistemul nu va putea începe deloc procesul.

Fișierele DLL pot necesita alte fișiere DLL

La fel cum o aplicație necesită un fișier DLL, un fișier DLL poate depinde de altele fișiere DLL. Dacă unul dintre aceste DLL-uri nu este găsit în lanțul de dependențe, aplicația nu se va încărca. Acest lucru este ușor de depanat folosind orice instrumente de dependență, cum ar fi Dependency Walker.

Sunt atât de multe în folderele de sistem

Cea mai mare parte a funcționalității sistemului este prezentată programului utilizatorului sub formă de fișiere DLL, deoarece acestea sunt forma standard. partajarea cod/resurse. Fiecare funcționalitate este stocată separat în fișiere DLL diferite, astfel încât sunt încărcate numai fișierele DLL necesare și, prin urmare, limitele de memorie din sistem sunt reduse.

Aplicații instalate utilizați și fișiere DLL

Fișierele DLL devin, de asemenea, o formă de separare fizică a funcțiilor, așa cum s-a explicat mai sus. Aplicații bune De asemenea, încercați să nu încărcați fișierele DLL până când acestea sunt absolut necesare, ceea ce va reduce cerințele de memorie. De asemenea, face ca aplicațiile să trimită o mulțime de fișiere DLL.

DLL la naiba

Cu toate acestea, uneori, actualizările de sistem întrerup adesea alte programe atunci când există o nepotrivire a versiunilor între fișierele DLL partajate și programul necesar. Puncte de control ale sistemului și cache DLL etc. Au existat inițiative M$ pentru a rezolva această problemă. Este posibil ca platforma .NET să nu întâmpine deloc această problemă.

Cum știm ce se află în interiorul unui fișier DLL?

Ar trebui să utilizați un instrument extern, cum ar fi DUMPBIN sau Dependency Walker, care nu va arăta doar ce funcții vizibile public (cunoscute sub numele de exporturi) sunt în fișierele DLL, ci și ce alte DLL-uri necesită și care sunt exportate din acele DLL-uri, acest fișier DLL depinde de .

Cum le creăm/utilizam?

Consultați documentația software-ului de la furnizorul dvs. Pentru C++, consultați LoadLibrary pe MSDN.

Să presupunem că construiți un executabil care utilizează unele dintre funcțiile găsite în bibliotecă.

Dacă biblioteca folosită static, linkerul va copia codul obiect pentru aceste funcții direct din bibliotecă și le va lipi în executabil.

Acum, dacă acel executabil rulează, are tot ce are nevoie, așa că executabilul încărcător îl încarcă în memorie și îl rulează.

Dacă biblioteca dinamic, linkerul nu va insera codul obiect, ci mai degrabă inserează un stub care spune practic că această funcție este în acest DLL in acest loc.

Acum, dacă acel executabil este rulat, lipsesc biți din executabil (de exemplu, stub-uri), astfel încât încărcătorul trece prin executabil reparând stub-urile lipsă. Numai după ce toate stuburile sunt rezolvate, executabilul va fi permis să ruleze.

Pentru a vedea acest lucru în acțiune, eliminați sau redenumiți DLL-ul și urmăriți încărcătorul raportează lipsa eroare dll când încercați să rulați executabilul.

De aici și numele Biblioteca de linkuri dinamice, părți ale procesului de conectare sunt efectuate dinamic în timpul execuției de către executabilul de încărcare.

O notă finală, dacă nu vă conectați la DLL, atunci linkerul nu va introduce stub-uri, dar Windows încă oferă un API GetProcAddress, care permite execuția unui DLL să fie încărcat după ce executabilul a fost lansat.

Fișierele DLL conțin Export tabel, care este o listă de caractere care pot fi vizualizate de programul apelant. Simbolurile sunt de obicei funcții cu convenția de apelare C (__stcall). Tabelul de export conține și adresa funcției.

Cu aceste informații, programul apelant poate apela apoi funcții din DLL, chiar dacă nu a avut acces la DLL în momentul compilării.

DLL-urile (Dynamic Link Libraries) și SL-urile (Shared Libraries echivalent în UNIX) sunt simple biblioteci de cod executabil care pot fi legate dinamic la un executabil în timpul încărcării.

Bibliotecile statice sunt inserate în executabil în timpul compilării și sunt fixate din acel punct. Acestea măresc dimensiunea executabilului și nu pot fi împărțite.

Bibliotecile dinamice au următoarele avantaje:

1/ Sunt încărcate în timpul execuției, nu compilate, deci pot fi actualizate independent de executabil (toate acele ferestre și casete de dialog, pe care îl vedeți în Windows, provin din DLL, deci aspect aplicația dvs. se poate modifica fără a o rescrie).

2/ Deoarece sunt independente, codul poate fi împărțit în mai multe executabile - acest lucru economisește memorie deoarece dacă rulați 100 de aplicații cu un singur DLL, poate exista o singură copie a DLL-ului în memorie.

Principalul lor dezavantaj este avantajul #1 - schimbarea DLL-ului independent de aplicație poate face ca aplicația dvs. să nu mai funcționeze sau să înceapă să se comporte bizar. Versiunile DLL nu sunt, în general, bine gestionate sub Windows, iar acest lucru duce la numele de lux „DLL Hell”.

FAQ

  1. Deschideți fișierul zip descărcat de pe site.
  2. Extrageți fișierul DLL în orice locație de pe computer.
    • În continuare, vă sfătuim să plasați fișierul în folderul programului care solicită fisierul dat. Asigurați-vă că utilizați formatul de fișier DLL pe 32 de biți pentru un program pe 32 de biți și formatul de fișier DLL pe 64 de biți pentru un program pe 64 de biți, altfel este posibil să primiți eroarea 0xc000007b.
  3. Dacă pașii de mai sus nu vă rezolvă problema, plasați fișierul în folderul de sistem. În mod implicit, acest folder se află aici:
    • C:\Windows\System (Windows 95/98/Me)
      C:\WINNT\System32 (Windows NT/2000) sau
      C:\Windows\System32 (Windows XP, Vista, 7, 8, 8.1, 10).
  4. În versiunea pe 64 de biți folderul Windows pentru DLL-uri pe 32 de biți, valoarea implicită se află aici:

C:\Windows\SysWOW64\ și pentru DLL-uri pe 64 de biți
C:\Windows\System32\.

Asigurați-vă că suprascrieți toate fișierele existente (dar păstrați o copie de rezervă a fișierului original).

Reporniți computerul.

Dacă aceasta nu rezolvă problema, încercați următorii pași pentru a aduce fișierul în registru:

Pentru DLL-uri pe 32 de biți în 32 de biți versiuni Windowsși pentru DLL-uri pe 64 de biți pe Windows pe 64 de biți:

  1. deschis Linie de comanda cu drepturi ridicate.
    • Pentru a face acest lucru, faceți clic pe Start, Toate programele, selectați Accesorii, faceți clic Click dreapta mouse-ul pe linia de comandă, apoi faceți clic pe „Run ca administrator”.
    • Dacă vi se cere să introduceți o parolă de administrator sau să confirmați, atunci introduceți parola sau faceți clic pe Permite.
  2. Apoi, tastați regsvr32 „filename”.dll și apăsați Enter.

Intrare de registry pentru DLL-uri pe 32 de biți pe Windows pe 64 de biți:

  1. Deschideți un prompt de comandă ridicat, urmând pașii de mai sus.
    • cd c:\windows\syswow64\
  2. Apoi, tastați următoarele și apăsați Enter:
    • regsvr32 c:\windows\syswow64\"filename".dll

Fișierele DLL sunt biblioteci dinamice utilizate de multe programe de pe computer. În momentul eliminării sau actualizării unuia dintre programe de pe computer, se poate dovedi că fișierele DLL instalate anterior în sistemul de operare pot fi șterse din greșeală. Pe lângă această situație, de foarte multe ori sistemul nu poate detecta DLL-ul din cauza virușilor, fără licență software, care cu siguranță impun o notă negativă șederii lor pe computer.

Foarte des, fișierele DLL dispar din cauza ruperii legăturilor dintre program și sistemul de operare în cazurile în care utilizatorul mod manual mută un program dintr-un folder în altul. Doar instrumentele automate și de sistem pentru eliminarea și instalarea programelor pe un PC pot asigura cea mai confortabilă utilizare a unui computer și a unui sistem de operare.

Biblioteca de linkuri dinamice

DLL (bibliotecă engleză Dynamic-link) - bibliotecă dinamică

DLL (Eng. Dynamic-link library) - conceptul sistemului de operare Microsoft Windows, o bibliotecă dinamică care permite utilizarea multiplă a diverselor aplicații software, Conceptul de sistem de operare Microsoft Windows. DLL-urile includ, de asemenea, controale și drivere ActiveX.

Formatul de fișier DLL urmează aceleași convenții ca și formatul de fișier executabil. fișiere EXE, combinând coduri, tabele și resurse.

Scopul introducerii DLL

Inițial, sa presupus că introducerea DLL-urilor ar permite organizarea eficientă a memoriei și a spațiului pe disc, folosind o singură instanță de module de bibliotecă pentru multe aplicații. Acest lucru a fost deosebit de important pentru versiuni timpurii Microsoft Windows cu limite severe de memorie.

Mai mult, ar fi trebuit să îmbunătățească eficiența dezvoltării și utilizării instrumentelor de sistem prin modularitate. Înlocuirea programelor DLL de la o versiune la alta trebuia să permită sistemului să crească independent, fără a afecta aplicațiile. În plus, DLL-urile ar putea fi utilizate de diferite tipuri de aplicații - de exemplu, Microsoft Office, Microsoft Visual Studio etc.

În viitor, ideea de modularitate a crescut în conceptul de controale ActiveX.

De fapt, beneficiile complete ale injectării DLL nu au fost atinse din cauza unui fenomen numit iadul DLL. Iadul DLL apare atunci când necesită mai multe aplicații în același timp diverse versiuni Bibliotecile DLL din cauza compatibilității lor incomplete, ceea ce duce la conflicte grave. Când sistemul a crescut la o anumită dimensiune, numărul de DLL-uri a început să depășească multe mii, nu toate erau complet fiabile și compatibile, iar conflictele de iad DLL au început să apară foarte des, reducând drastic fiabilitatea generală a sistemului. Târziu versiuni Microsoft Windows a început să permită utilizarea paralelă versiuni diferite DLL, care a anulat beneficiile principiului original de modularitate.