
Proč se musí instalovat DirectX?
Ahoj, na webu Microsoftu jsem se dozvěděl, že od Visty už DirectX v systému je. Na Windows 8 mám verzi 11, a přesto pro spuštění hry potřebuji dodatečně nainstalovat verzi 9.
Copak ta novější verze 11 neobsahuje to, co ta starší verze 9?
Protože hra je hloupá. Vznikla v době, kdy byl Direct X 9 a novější nezná. Takže i když tam máš novější, hra to neví.
Hra si kontroluje, jestli verze DirectX >= '9' a protože '11' je menší jak '9', tak...
11 je menší jak 9?
Co se tu člověk nedozví...
Kdybys četl pořádně, viděl bys tam apostrofy
Seřaď si to jako řetězce, ne jako čísla podle abecedy. Pak se třeba něco dozvíš
když si to psal, ešte si nemal kávu v sebe, že?
V čem máš problém? Napsané je to dobře, je popsané i to, proč program špatně detekuje verzi DirectX.
Podobný problém byt na začátku i s aplikacemi a Windows 10.
Standardně se verze programu/knihovny vrací jako řetězec (API funkce) a pokud to programátor jen přebere a s něčím porovnává, skončí u toho, že verze '9' je novější (vyšší) než '11'
Stačí ti tohle vysvětlení nebo to chceš ještě pomaleji?
zkus si:
JaFi, to máš marný. Tihle chybu nepřiznají.
V podstate - je to práve hrou a jej rozhodovaním, čo má zisťovať. A pretože tvorcovia hier uvažujú často nelogicky - tak je 9 viac ako 11 -
Skúste si v nejakom editore, tabuľkovom procesore dať zoradiť 8, 9, 10, 11 .... nezoradí to, pretože prvé číslo verzie 10 je "1" tak podľa logickej nelogiky to bude menej ako "9" - a to i napriek tomu, že DirectX 11 má v sebe i ver.9. A samozrejme, že sa potom dožaduje ver.9. Ak by bolo číslovanie DirectX 09,10,11,12 - tak to zoradí správne. a nebude sa dožadovať staršej verzie, pretože 10 > 09.
Tak to vidím ja, ako to "funguje" (nezmyselne).
Ne, není nesmyslné. Prostě to porovnává jako textový řetězec a neanalyzuje obsah, nehledí na to, že 9 je číslo a 10 taky jedno číslo. Jak by měl podle tebe porovnat např. 1f a 1g? Ovšem, bez diskuze je to chyba programátora, co co programoval to porovnávání, že to porovnával jako textový řetězec a ne jako číslo...
To určitě ano. Už samotné označování verzí mi přijde špatné - do verze 9 včetně např. 3.0, 3.0a, 3.0b a teprve až od verze 10 např. 11, 11.1, 11.2.
Jasně, to dává smysl. Díky za vysvětlení. :)