definiție Dll iad iad dll și sinonimele iad dll (rusă)
Arabă Bulgară Chineză Croată Cehă Daneză Olandeză Engleză Estoniană Finlandeză Franceză Germană Greacă Hindi Indonezian Islandeză Italiană Japoneză Letonă Lituaniană malgașă Norvegiană Persană Poloneză Portugheză Română Rusă Sârbă Slovacă Slovenă Spaniolă Thai Turcă Vietnameză suedeză
Arabă Bulgară Chineză Croată Cehă Daneză Olandeză Engleză Estoniană Finlandeză Franceză Germană Greacă Hindi Indonezian Islandeză Italiană Japoneză Letonă Lituaniană malgașă Norvegiană Persană Poloneză Portugheză Română Rusă Sârbă Slovacă Slovenă Spaniolă Thai Turcă Vietnameză suedeză
definition - DLL iad
- Wikipedia, enciclopedia liberă
DLL iad (DLL-coșmar, literalmente: DLL -ad) - impas asociat cu controlul dinamic al DLL în sistemul de operare Microsoft Windows.
Esența problemei este conflictul de versiuni DLL concepute pentru a sprijini anumite caracteristici. DLL iad - un exemplu de concepte de programare proaste, care, ca o mină ascunsă, ceea ce duce la o creștere bruscă a dificultăților prezentate de o complicație și îmbunătățirea sistemului. Prin urmare, expertii recomanda pentru a evita sau de a limita utilizarea de DLL. provocând astfel de conflicte.
Descrierea problemei
Conform planului inițial, DLL ar trebui să fie consecvente de la o versiune la alta și interschimbabile pe ambele părți.
Punerea în aplicare a mecanismului de DLL, cu toate acestea, este faptul că incompatibilitatea și non-fungibilitatea devine regula, mai degrabă decât excepția, ceea ce duce la o mulțime de probleme.
- Lipsa unor standarde pentru numele și poziția DLL versiune în structura de fișiere conduce la faptul că DLL incompatibile înlocui cu ușurință reciproc sau deconectați reciproc
- Lipsa standardelor în procedura de instalare conduce la faptul că instalarea de noi programe care să conducă la DLL de înlocuire care rulează în versiuni incompatibile
- Lipsa de sprijin din verigile DLL și mecanisme de protecție conduce la faptul că DLL incompatibile pot avea același nume și aceeași versiune
- Nu există instrumente standard pentru a identifica și controla utilizatorii de sistem DLL și administratori
- Utilizarea DLL separat pentru comunicarea între sarcini duce la instabilitate de aplicații complexe
Pentru a evita conflictele utiliza DLL multe copii redundante ale fiecărei cereri, care neagă ideea inițială de a profita de DLL ca un modul standard, odată ce sunt stocate în memorie și partajată de mai multe aplicații. În plus, cu această experiență, după corectarea erorilor în DLL, sau pentru a restaura sistemul de la un număr de diferite DLL dosar, care poartă același nume, și de a efectua aceeași funcție, crește și actualizare a versiunii sau eroare corectarea automată devine imposibilă.
Istoricul problemei
Această problemă a apărut în versiunile anterioare de Microsoft Windows.
Cu probleme similare întâlnite în versiunile anterioare ale Mac OS X. dar folosind alte tehnologii. Nu evita distribuitorii de biblioteci deschise Source astfel de probleme.
Problema se repetă în mod constant în cazul în care programul încearcă să ruleze pe DLL greșit, c care a fost testat, care arată depravarea originală a conceptului general, care permite versiuni de înlocuire arbitrare ale modulelor.
Măsuri împotriva iad DLL
Se recomandă ca aceste măsuri să ia în același timp, pentru a obține cele mai bune rezultate:
- Sistemul de operare trebuie să fie livrat împreună cu managerul de pachete pentru a fi capabil de a urmări toate interdependenței DLL, cu utilizarea managerul de pachete ar trebui să fie încurajate și DLL-ul de instalare individuale - respins posibil.
- Distribuția bibliotecilor ar trebui să se facă la nivel central.
- Preveni posibilitatea utilizării în paralel a mai multor versiuni ale aceluiași DLL [1].
- Atunci când modificarea software pentru uz personal și de a oferi o versiune modificată a DLL.
- În timpul de proiectare DLL trebuie să fie luate în considerare cu atenție conceptul de funcții și versiuni. DLL nu ar trebui să fie folosit fără a fi nevoie de, și bibliotecile asociate cu o singură aplicație ar trebui să fie conectate static (în EXE-fișier).