Hlavní navigace

Názor ke zprávičce Po patnácti letech vývoje vyjde Wine 1.0 od Lael Ophir - Mýlíte se. GetVersion funguje správně na Win16 i...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 25. 3. 2008 10:44

    Lael Ophir (neregistrovaný)
    Mýlíte se. GetVersion funguje správně na Win16 i Win32. Problémem bylo, že řada aplikací ten výsledný packed dword rozebírala, a to různými obskurními způsoby. Funkce GetVersionEx byla uvedena právě proto, aby se těmto častým problémům předešlo.

    Win16 a Win32 jsou odlišné platformy, a i kdyby se nějaká funkce API chovala odlišně, a byla správně dokumentovaná, bylo by vše v pořádku.

    Dvě různá API pro zjištění té samé věci jsou vcelku běžná věc. Buď původní API narazilo na nějaké limity, nebo bylo z nějakého důvodu nepraktické. A protože je třeba zachovat zpětnou kompatibilitu, původní API musí zůstat.

    Správné použití GetVersion:
    dwVersion = GetVersion();
    dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
    dwMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));

    Skutečným problém je třeba takováhle prasárna:
    http://blogs.msdn.com/oldnewthing/archive/2004/10/26/247918.aspx