Kļūda darbojas ar funkcijām no ārējām dinamiski ielādētām bibliotēkām

Kļūda darbojas ar funkcijām no ārējām dinamiski ielādētām bibliotēkām

Windows operētājsistēmas bibliotēkas resursu struktūru var attēlot šādi:

  • Sākumā zemākajā līmenī ir pašas sistēmas “pārtraukumi”, kuru “kājas” aug no pašām Windows pirmajām versijām, turklāt viss, sākot no tik ilgi tukšās “vecās sievietes” MS-DOS ( Jā, šajā līmenī ir gandrīz 30 gadi Windows nav mainījušies). Piekļuve šai bibliotēkai ir viegli caur montētāju, kas saistīta ar pārtraukumu (pārtraukumu), tātad “pārtraukšana”, kaut arī patiesībā šim līmenim ir maz saistības ar pārtraukšanas apstrādes apakšprogrammām.
  • Mēs paceļamies vienu soli augstāk un nokļūstam Winsdk - izstrādātāja programmatūras komplektā no Windows. Tas ir sava veida analogs no visiem tiem pašiem “pārtraukumiem”, bet jau ņemot vērā Windows organizācijas specifiku - izstrādātājs piekļūst šai bibliotēkai, izmantojot viņa izmantotās augstā līmeņa valodas parasto kodu.

Vienīgā grūtība ir tā, ka Winsdk apraksta terminoloģija atšķiras no visvairāk izmantotās programmēšanas valodas apraksta terminoloģijas, tās funkcijām (ņem to pašu celtnieku vai delfi). Par laimi, visas Winsdk funkcijas ir sīki aprakstītas pašos izstrādātājos (patiesībā ar tām nav nekā kopīga, viņu popularitāte ir tik liela).

WINSDK funkcijas tiek savāktas dinamiski savienotu (burtiski - ielādētu) bibliotēku failos - dinamiskā lobray (DLL). Šādas bibliotēkas lietotājam nav jāzina iekšpuses funkcijas adrese - pietiek ar to, ka viņš zina funkcijas nosaukumu un ir pārliecība, ka funkcija bibliotēkā ir. Ieejas norādi uz funkcijām tiek noteikti pašas bibliotēkas aprakstā.

  • Mēs arī paceļamies augstāk un atrodamies uzraudzības programmu bibliotēkās pa Windows. Viena no slavenākajām virsbūvēm ir grafikas pakete DirectX. Šeit ir viena un tā pati organizācija - visi tie paši DLL faili.

Šeit ar vienu no bibliotēkām DirectX un kļūda D3D11 ir saistīta.DLL - tas saglabā tilpuma grafisko modeļu parādīšanas funkcijas.

Nelieli skaidrojumi

Šeit jums jāsaprot, ka ekrānā parādās vienkārša ziņojuma "kļūda D3D11.Dll ", tas nav ļoti pareizs vēstījums, tas precīzi neatspoguļo problēmas būtību. Dažreiz ir ziņojums par kļūdu "varētu izveidot D3D11 ierīci" - kā to novērst, šāda kļūda pati par sevi var maz palīdzēt.

Precīzāk, šim ziņojumam būtu jāizskatās kā "kļūda, kas ievada XYZ funkciju, bibliotēkā D3D11.Dll "vai vienkāršāka -" XYZ funkcija bibliotēkā D3D11.DLL nav definēts ".

Vēl viena lieta ir tā, ka lietojumprogrammu izstrādātāji bieži neuztraucas ar skaidrojumiem un precīzi sniedz vienkāršu, “nenoteiktu” versiju par radušās kļūdas raksturu. Bet tas nemaina būtību. Galvenie neveiksmes iemesli - vai bibliotēkai D3D11.DLL nav kā opcija - D3D11.DLL netika atrasts vai nesatur nepieciešamo funkciju vai sabojāts, lai funkcija būtu nepieejama.

Kļūdas labošana

Piekļuves kļūdas labošana D3D11.DLL sastāv no pašas bibliotēkas pārkārtošanas. DLL - izpildāmais kods, ievadiet šādu failu, un tas nedarbosies, lai to rediģētu. Turklāt fails attiecas uz DirectX pakotnes 11. versiju.

Tādējādi pirmais veids, kā novērst kļūdu, ir pārkārtot DirectX 11 paketi. Šī metode ir vienkārša un jau sen ir pārbaudīta, galvenais ir atrast tikai pašas virsbūves darba versiju, vislabāk to izdarīt Microsoft oficiālajā vietnē.

Instalācijas DirectX operētājsistēmā Windows

Vēl viens veids ir pārkārtot tikai pašu failu D3D11.Dll. To var izdarīt, izmantojot specializētu DLL-Files utilītu.com, kas ir bezmaksas un pieejams tāda paša nosaukuma vietnē.

Tātad, instalējiet un palaidiet DLL-FILES.

Meklējiet DLL failu DLL-FILES programmā.Kombinācija

Meklēšanas joslā mēs ievadām "D3D11.Dll ". Pēc bibliotēkas atrašanas mēs noklikšķinām "Instalēt".

DLL faila instalēšana DLL-FILES programmā.Kombinācija

Ja esat pieradis darīt visu pats, tad problēmu var atrisināt manuāli - tas ir trešais veids. Lai to izmantotu, lejupielādējiet failu D3D11.DLL un ievietojiet to labajā sistēmas mapē. Šeit jums jābūt uzmanīgam, jo ​​šī mape dažādās logu versijās ir atšķirīga (piemēros tiek pieņemts, ka sistēma ir instalēta diskā "C:", ja tas tā nav, tad diskam jābūt atbilstošam ):

  • Versijās Windows XP, Vista, 7, 8, 8.1 un 10 - C: \ Windows \ System32;
  • Windows 95, 98 un ME - C: \ Windows \ System;
  • In Windows NT un 2000 - C: \ Winnt \ System32.

Mēs ņemam vērā - ja ir arī sistēmas versija 64 bitu procesoram, tad mūsu faila pēdējā mape katrā ziņā ir - "syswow64".

Faila skaitīšana mapei vēl nenodrošina darbu ar to. Tagad tas jāreģistrē Windows sistēmas reģistrā. Lai to izdarītu, mēs veicam komandas caur logu (sākuma/galvenā izvēlne/izpildīt) komanda: RegSVR32 D3D11.Dll.

Secinājums

Vairuma vairuma problēmu risinājums, kas saistīts ar Windows operētājsistēmas ārējās dinamiski ielādētajām bibliotēkām, bieži ir saistīta tikai ar pašas bibliotēkas pārkārtojumu vai patstāvīgi, vai ar kopēju paketi (mūsu piemērā - DirectX 11).

To ir iespējams instalēt DLL failā un manuāli, to vienkārši kopējot vēlamajā mapē. Bet, pirmkārt, jums jāzina šī mape. Un, otrkārt, šāds fails būs jāreģistrē Windows sistēmas reģistrā. Šeit jūs nevarat iztikt bez oficiālu komunālo pakalpojumu darbiem ar pašas sistēmas reģistru.

Ja esat saskāries ar šādu kļūdu, tad komentāros rakstiet par savu pieredzi.