Klaida dirbant su funkcijomis iš išorinių dinamiškai pakrautų bibliotekų
- 1776
- 454
- Gustavo Mills
„Windows“ operacinės sistemos bibliotekos išteklių struktūra gali būti parodyta taip:
- Iš pradžių žemiausiame lygyje yra pačios sistemos „pertraukimai“, kurios „kojos“ auga iš pirmųjų „Windows“ versijų, be to, viskas nuo tos ilgos „senos moters“ MS-DOS ( Taip, tokiame lygyje „Windows“ beveik 30 metų nepasikeitė). Prieiga prie šios bibliotekos lengvai yra per surinkėją, vadovaujant pertraukimui (pertraukimui), taigi „pertraukimas“, nors iš tikrųjų šis lygis turi mažai ryšių su pertraukų apdorojimo subprogramomis.
- Pakilame vienu žingsniu aukščiau ir patekame į „WinSDK“ - „Windows“ kūrėjų programinės įrangos rinkinį. Tai yra tam tikras tų pačių „pertraukimų“ analogas, tačiau jau atsižvelgiant į „Windows“ organizacijos specifiką - kūrėjas gauna prieigą prie šios bibliotekos per įprastą aukšto lygio kalbos, kurią jis naudoja, kodą.
Vienintelis sunkumas yra tas, kad WinSDK aprašymo terminologija skiriasi nuo labiausiai taikomo programavimo kalbos aprašymo, jos funkcijų (imk tą patį statybininką ar „Delphi“) terminologiją (imk tą patį statybininką ar „Delphi“). Laimei, visos „WinSDK“ funkcijos yra išsamiai aprašytos patys kūrėjai (iš tikrųjų nėra nieko bendra su jais, jų populiarumas yra toks puikus).
„WinSDK“ funkcijos renkamos dinamiškai prijungtų (pažodžiui pakrautų) bibliotekų failuose - „Dynamic Lobray“ (DLL). Tokios bibliotekos vartotojui nereikia žinoti funkcijos vidaus adreso - jo pakanka žinoti funkcijos pavadinimą ir pasitikėti, kad bibliotekos funkcija yra bibliotekoje. Įėjimo taškai į funkcijas nustatomi pačios bibliotekos aprašyme.
- Mes taip pat kyla aukščiau ir esame „Windows“ priežiūros programų bibliotekose. Vienas garsiausių antstatų yra „Graphics Packer Directx“. Čia yra ta pati organizacija - visi tie patys DLL failai.
Čia yra susietas su viena iš bibliotekų „DirectX“ ir klaida D3D11.DLL - jis saugo tūrinių grafinių modelių rodymo funkcijas.
Maži paaiškinimai
Čia turite suprasti, kad kai ekrane pasirodo paprastas pranešimas „D3D11 klaida.Dll ", tai nėra labai teisinga žinia, ji tiksliai neatspindi problemos esmės. Kartais yra pranešimas apie klaidą „gali sukurti D3D11 įrenginį“ - kaip ją ištaisyti, tokia klaida gali padėti mažai.
Tiksliau, šis pranešimas turėtų atrodyti kaip „klaida įvedus į XYZ funkciją, bibliotekoje D3D11.Dll "arba paprastesnis -" XYZ funkcija bibliotekoje D3D11.Dll nėra apibrėžtas “.
Kitas dalykas yra tai, kad programų kūrėjai dažnai nesivargina paaiškinimų ir tiksliai pateikia paprastą, „neterminuotą“ versiją apie atsiradusį klaidos pobūdį. Bet tai nekeičia esmės. Pagrindinės nesėkmės priežastys - arba D3D11 biblioteka.DLL nėra, kaip variantas - D3D11.DLL nebuvo rastas arba neturi reikiamos funkcijos arba pažeistos, kad funkcija būtų neprieinama.
Klaidos taisymas
Prieigos prie funkcijos klaidos pataisa D3D11.DLL susideda iš pačios bibliotekos pertvarkymo. Dll - vykdomojo kodo, įveskite tokį failą ir jis neveiks jo redaguoti. Be to, failas nurodo 11 -ą „DirectX“ paketo versiją.
Taigi pirmas būdas pašalinti klaidą yra pertvarkyti „DirectX 11“ paketą. Šis metodas yra paprastas ir jau seniai tikrinamas. Svarbiausia yra tik surasti veikiančią pačios antstato versiją, geriausia tai padaryti oficialioje „Microsoft“ svetainėje.
Diegimas „DirectX“ „Windows“
Kitas būdas yra pertvarkyti tik patį D3D11 failą.Dll. Tai galima padaryti naudojant specializuotą „DLL-Files“ naudingumą.com, kuris yra nemokamas ir prieinamas to paties pavadinimo svetainėje.
Taigi, įdiekite ir paleiskite „Dll-Files“.
DLL failo ieškokite „DLL-Files“ programoje.Com
Paieškos juostoje įvedame „D3D11“.Dll ". Radę biblioteką, spustelėjome „Įdiegti“.
DLL failo diegimas „DLL-Files“ programoje.Com
Jei esate įpratę viską daryti patys, tada problemą galima išspręsti rankiniu būdu - tai yra trečias būdas. Norėdami jį naudoti, atsisiųskite D3D11 failą.Dll ir įdėkite jį į tinkamą sistemos aplanką. Čia turite būti atsargūs, nes šis aplankas skirtingose „Windows“ versijos )
- versijos „Windows XP“, „Vista“, 7, 8, 8.1 ir 10 - C: \ Windows \ System32;
- „Windows 95“, „98“ ir „Me“ - C: \ Windows \ System;
- „Windows NT“ ir 2000 - C: \ Winnt \ System32.
Mes atsižvelgiame į - jei taip pat yra 64 bitų procesoriaus sistemos versija, tada galutinis mūsų failo aplankas bet kokiu atveju yra „SYSWOW64“.
Failo surašymas į aplanką dar nepateikia darbo su juo. Dabar jį reikia registruoti „Windows“ sistemos registre. Norėdami tai padaryti, mes atliekame komandas per langą (Pradėti/pagrindinį meniu/vykdykite) komandą: Regsvr32 D3D11.Dll.
Išvada
Daugelio problemų, susijusių su išorinėmis dinamiškai pakrautomis „Windows“ operacinės sistemos bibliotekomis, sprendimas dažnai yra susijęs su pačios bibliotekos pertvarkymu arba savarankiškai arba per bendrą paketą (mūsų pavyzdyje - „DirectX 11“).
Galima įdiegti į DLL failą ir rankiniu būdu, paprastai nukopijuojant jį į norimą aplanką. Bet pirma, jūs turite žinoti šį aplanką. Ir, antra, tokį failą reikės užregistruoti „Windows“ sistemos registre. Čia negalite išsiaiškinti, ar oficialios komunalinės paslaugos dirba su pačios sistemos registru.
Jei susidūrėte su tokia klaida, tada parašykite apie savo patirtį komentaruose.
- « Kaip išspręsti problemą, kai „AVira“ neatnaujinta
- „Android“ žaidimai kompiuteryje naudojant „LeapDroid“ emuliatorių »