Chyba práce s funkcemi z externích dynamicky načtených knihoven
- 4591
- 1349
- Gabin Sladký
Struktura knihovních zdrojů operačního systému Windows může být reprezentována takto:
- Zpočátku na nejnižší úrovni existují „přerušení“ samotného systému, jehož „nohy“ rostou z prvních verzí oken, navíc vše od této dlouhokly „staré ženy“ ms-dos ( Ano, na této úrovni je téměř 30 let v systému Windows se nic nezměnilo). Přístup k této knihovně je snadno prostřednictvím assembleru na velení přerušení (přerušení), tedy „přerušení“, i když ve skutečnosti má tato úroveň malý vztah k podprogramům zpracování přerušení.
- Zvyšujeme o krok výš a dostaneme se do WinSDK - sady vývojářského softwaru z Windows. Toto je druh analogu všech stejných „přerušení“, ale již bere v úvahu specifika organizace Windows - vývojář získá přístup do této knihovny prostřednictvím obvyklého kódu jazyka vysoké úrovně, který používal jím.
Jediným problémem je, že terminologie popisu WINSDK se liší od terminologie popisu nejauplikovanějšího programovacího jazyka, jeho funkcí (vezměte stejný stavitel nebo delfi). Naštěstí jsou všechny funkce WinSDK podrobně popsány v samotných vývojářích (ve skutečnosti s nimi nemá nic společného, jejich popularita je tak velká).
Funkce WinSDDK jsou shromažďovány v souborech dynamicky připojených (doslova - naložených) knihoven - dynamický LOBRAY (DLL). Uživatel takové knihovny nemusí znát adresu funkce uvnitř - stačí znát název funkce a mít jistotu, že funkce v knihovně je. Vstupní body na funkce jsou stanoveny v popisu samotné knihovny.
- Rostu také stoupáme a jsme v knihovnách programů dohledu nad okny. Jednou z nejznámějších superstruktur je grafický balíček DirectX. Zde je stejná organizace - všechny stejné soubory DLL.
Zde je s jednou z knihoven DirectX a chyba D3D11 přidružena.DLL - Ukládá funkce zobrazování objemových grafických modelů.
Malá vysvětlení
Zde musíte pochopit, že když se na obrazovce objeví jednoduchá zpráva „Chyba D3D11.Dll ", nejedná se o velmi správnou zprávu, neodráží přesně podstatu problému. Někdy existuje zpráva o chybě „může vytvořit zařízení D3D11“ - jak to opravit, taková chyba sama o sobě může pomoci jen málo.
Přesněji by tato zpráva musela vypadat jako „Chyba vstupující do funkce XYZ v knihovně D3D11.Dll "nebo jednodušší -" XYZ funguje v knihovně D3D11.DLL není definován “.
Další věcí je, že vývojáři aplikací se často neobtěžují s objasněním a přesně dávají jednoduchou „neurčitou“ verzi povahy chyby, která vznikla. Ale to nemění podstatu. Hlavní důvody selhání - nebo knihovna D3D11.DLL chybí, jako možnost - D3D11.DLL nebyl nalezen nebo neobsahuje nezbytnou funkci nebo poškozený tak, aby byla funkce nepřístupná.
Oprava chyby
Korekce chyby přístupu k funkci v D3D11.DLL spočívá v přeuspořádání samotné knihovny. DLL - spustitelný kód, zadejte takový soubor a nebude to fungovat k úpravě. Soubor navíc odkazuje na 11. verzi balíčku DirectX.
Prvním způsobem, jak eliminovat chybu, je tedy přeuspořádat balíček DirectX 11. Tato metoda je jednoduchá a byla dlouho zkontrolována, hlavní věcí je pouze najít pracovní verzi samotné nástavby, je nejlepší to udělat na oficiálních webových stránkách společnosti Microsoft.
Instalace DirectX ve Windows
Dalším způsobem je přeuspořádat pouze samotný soubor D3D11.Dll. To lze provést pomocí specializovaného nástroje pro DLL-Files.com, který je zdarma a je k dispozici na webu stejného názvu.
Nainstalujte a spusťte soubory DLL.
Vyhledejte soubor DLL v programu DLL-Files.Com
Ve vyhledávacím panelu zadáme „D3D11.Dll ". Po nalezení knihovny klikneme na „Instalovat“.
Instalace souboru DLL v programu DLL-Files.Com
Pokud jste zvyklí dělat všechno sami, pak problém lze vyřešit ručně - to je třetí způsob. Chcete -li jej použít, stáhněte si soubor D3D11.DLL a umístěte jej do správné složky systému. Zde musíte být opatrní, protože tato složka v různých verzích oken je jiná (v příkladech se předpokládá, že systém je nainstalován na disku "C:", pokud tomu tak není, pak musí být disk vhodný ):
- Ve verzích Windows XP, Vista, 7, 8, 8.1 a 10 - C: \ Windows \ System32;
- V Windows 95, 98 a ME - C: \ Windows \ System;
- V Windows NT a 2000 - C: \ winnt \ System32.
Vezmeme v úvahu - pokud existuje také verze systému pro 64bitový procesor, pak je konečná složka pro náš soubor v každém případě - „SysWow64“.
Sčítání souboru do složky dosud neposkytuje práci. Nyní je třeba jej zaregistrovat v registru systému Windows System. Za tímto účelem provádíme příkazy přes okno (Start/Main Menu/Execute) Příkaz: regsvr32 d3d11.Dll.
Závěr
Řešení drtivé většiny problémů spojených s externími dynamicky načtenými knihovnami operačního systému Windows je často spojováno jednoduše se přeskupením samotné knihovny nebo nezávisle nebo prostřednictvím společného balíčku (v našem příkladu - DirectX 11).
Je možné nainstalovat do souboru DLL a ručně jej s jednoduchým zkopírováním do požadované složky. Nejprve však musíte znát tuto složku. A za druhé, takový soubor bude nutné zaregistrovat v systému systému Windows System. Zde se nemůžete dělat bez oficiálních služeb, které pracují s registrem samotného systému.
Pokud jste se s takovou chybou setkali, napište o své zkušenosti v komentářích.