Otázka čitateľa: Pred niekoľkými týždňami som si poskladal nový herný stroj s procesorom Intel Core i5-4460, doskou MSI Z97 Gaming 3, 16 GB pamäte, grafickou kartou GeForce 760 a 256 GB SSD, doplneným o 2 TB HDD. Počítač funguje v rámci systému Windows bez akýchkoľvek problémov a rôzne programy aj internet klasicky používam. Nemôžem ho však použiť na to, na čo som sa počas mnohých rokov živorenia na starom PC tešil. Na hranie nových hier! Mám prichystané desiatky titulov, ktoré som si buď nakúpil v zľavách na Steame, alebo som si ich požičal od kamarátov, ktorí ich už dávno hrali. Kedykoľvek sa však pokúsim nejakú hru spustiť (napríklad Bioshock infinity alebo Alien Isolation), objaví sa správa „The application was unable to start correctly (0xc000007b). Click OK to close the application.“ Následne kliknem len na OK a je hotovo. Hra sa nespustí a stále pozerám na plochu Windows. Jediná hra z celej skupiny, čo sa mi normálne spustí, je Left for dead 2. Žiadna iná však nefunguje. Skúšal som riešenie hľadať na internete a dopracoval som sa len k tomu, že ľudia radia nainštalovať Visual C++. Pri pohľade do nainštalovaných programov som zistil, že mám nainštalovanú 32-bitovú verziu, takže som ju odinštaloval a nainštaloval 64-bitovú (mám 64-bitové Windows 7). Nič sa však nezmenilo a som z toho už zúfalý. Mohli by ste mi poradiť?

Ide o pomerne častú chybu, ktorá sa vyskytuje najmä v súvislosti s hrami a čerstvo nainštalovanými operačnými systémami. Drvivá väčšina hier používa súpravu knižníc a aplikačných rozhraní Microsoft DirectX v rôznych verziách (verzia 9 vo Windows XP, 10 vo Windows Vista, 11 v Windows 7 a 12 v pripravovanom Windows 10), ktorú Microsoft vyvíja práve pre účely hier. Na ich fungovanie je teda nutné mať DirectX v systéme nainštalovaný. Z používateľského hľadiska nejde obvykle o absolútne žiadnu starosť, pretože DirectX si inštalujú hry sami pri svoje vlastnej inštalácii (majú jeho súbory vo svojich inštalačných mechanizmoch), takže používateľ vlastne o ničom nevie a hra funguje tak ako má.

DirectX používa drvivá väčšina pokročilých hier. Jeho inštaláciu a aktualizáciu si obvykle hry zaobstarajú sami

DirectX používa drvivá väčšina pokročilých hier. Jeho inštaláciu a aktualizáciu si obvykle hry zaobstarajú sami

Obdobne je to aj v prípade ďalších komponentov v podobe Microsoft .NET framework a Microsoft Visual C++ (redistributable), ktoré používa obrovské množstvo rôznych programov (takisto však aj hier). U týchto dvoch menovaných prvkov si je dobré uvedomiť, že nejde o programy v zmysle, ako ich bežne chápu používatelia. Ide o softvérové platformy s množstvom funkcií a služieb, ktoré iné programy následne používajú. Poskytujú pritom napríklad prostriedky pre prístup k dátam či databáze, hotové numerické algoritmy a podobne.

Existuje niekoľko ich verzií a rôzne programy môžu používať vždy odlišnú. Napríklad 32-bitový variant C++ ste odinštalovali zbytočne, pretože ho môžu používať nejaké 32-bitové programy, ktoré na svojom 64-bitovom systéme máte nainštalované. Je celkom normálne, že na niekoľko mesiacov či rokov starom počítači sa postupne nazhromaždí niekoľko verzií .NET framework a C++ redistributable package. Pokiaľ totiž nejaký program alebo hra konkrétnu verziu potrebuje, nainštaluje si ju. Váš systém rozličné verzie nijako nespomaľujú ani na ňom nevyvolávajú konflikty. Nemusíte sa preto o ne nijako starať (aktualizačný systém Windows vám po inštalácii bude samostatne aktualizovať vývojovú vetvu .NET framework 3.5 aj 4.5 a nepotrebné sám odinštaluje).

DirectX inštalujú hry v drvivej väčšine prípadov sami a pokiaľ potrebujú nejaké funkcie z balíkov .NET framework alebo C++ redistributable package, nainštalujú si ich tiež. Problémom je, ak pri prvej inštalácii dôjde ku chybe a niektorý zo súborov týchto komponentov je poškodený. Keď potom inštalujete ďalšie hry, tie rozpoznajú, že daný komponent sa už v systéme nachádza a neinštalujú ho. Problém je následne na svete. V systéme totiž zostáva len tá prvá a chybná verzia, takže nefunguje ani jedna hra, pretože všetky ju potrebujú.

V prípade, že chcete opraviť .NET framework alebo C++ redistributable, otvore Ovládací panel a v sekcii odinštalovania programov si zapamätajte, aké verzie máte nainštalované. Následne ich odinštalujte a na stránke www.microsoft.com si tieto verzie vyhľadajte (jednoduchým zadaním do integrovaného vyhľadania stránky), stiahnite a nainštalujte. Sú všetky zdarma. Keďže však s programami žiadne problémy nemáte, pravdepodobne bude poškodený nejaký súbor DirectX. Tu je situácia trochu komplikovanejšia, pretože sa nedá len tak jednoducho odinštalovať a nainštalovať znova.

Na stránke Microsoftu nájdete nástroj DirectX End-User Runtime Web Installer, ktorý po spustení na počítači skontroluje DirectX a ak nájde chýbajúce alebo staré súbory, doplní ich alebo upgraduje. Žiaľ, ak je nejakým spôsobom poškodený aktuálny súbor, k jeho prepisu nedôjde, pretože ho program bude považovať za správny, tak ako to robia inštalátory DirectX v hrách. Ak ho chcete k prepisu donútiť, je nutné ho oklamať zmenou registra.

Než sa však k tomu odhodláte, vyskúšajte jednu ľahkú zmenu. Najčastejšie je totiž poškodený súbor xinput1_3.dll (patriaci do DirectX), ktorý nájdete v priečinku C:WindowsSysWOW64. Funkčnú a čistú verziu tejto knižnice si stiahnite z našej stránky: xinput1_3.dll (79 kB) a zameňte ho za tú svoju. Ak bola chyba v tom, hry by mali prakticky okamžite ísť.

V opačnom prípade pokračujte už spomenutou zmenou systémového registra. Do integrovaného vyhľadávania Windows zadajte regedit a vyhľadanú položku spustiť. Otvorí sa editor registrov, kde rozbaľte vetvu HKEY_LOCAL_MACHINE Software Microsoft DirectX. Následne dvojklikom otvorte položku Version a zmeňte ju na 4.08.00.0904. Program regedit zavrite a spustite nástroj DirectX End-User Runtime Web Installer. Keďže ten zistí, že máte nainštalovanú „starú“ verziu DirectX, prebehne kompletná inštalácia.

František Urban

František Urban
Zameriavam sa najmä na prehľadové a analytické články z oblasti najrôznejších technológií a ich vývoja. Nájdete ma takisto pri diagnostike HW a SW problémov.