Zaloguj się, aby obserwować  
Gram.pl

Windows 10 ukaże się wraz z DirectX 12

22 postów w tym temacie

> Masz coś jeszcze do dodania?
>
> if(osName.startsWith("Windows 9"))
>
> Dla nieprogramistów - to sprawdza czy nazwa systemu zaczyna się od słów Windows 9. Jeśli
> tak to jest to 95 lub 98. Bądź właśnie 9tka. A to powodowało by komplikacje.
>
> I takich linii, z tego co widać po tej stronie... są tysiące w różnych programach. Choćby
> w samej Javie. Minecraft by przestał chodzić (a poważniej, o ile on niekoniecznie o tyle
> dziesiątki/setki mniejszych programów nieaktualizowanych od kilku miesięcy już tak) :<
> Więc w sumie mogę tutaj Microsoftowi częściowo uwierzyć. Częściowo bo mogłoby się to
> nazywać Windows Nine. Co też rozwiązuje problem. Ale może wydział marketingu uznał że
> cyferki są ładniejsze niż literki.

http://pastebin.com/EfVpPWHn Masz coś jeszcze do dodania? ;)
Kod w C++, opisany. Do tego jeszcze informacje z MSDN.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724834(v=vs.85).aspx

i skompilowany plik:
http://przeklej.org/file/JYNHmW/numerwindy.exe

Sami możecie sprawdzić, Vista to 6.0 ( potwierdziłem ) a Win 7 to 6.1, więcej nie pamiętam.
Nie testowane na innych systemach, ale raczej nic tu nie może nawalić...

Nie sprawdzałem, ale raczej w Javie też można takie dane otrzymać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 04.10.2014 o 17:39, AveMe napisał:

Sami możecie sprawdzić, Vista to 6.0 ( potwierdziłem ) a Win 7 to 6.1, więcej nie pamiętam.
Nie testowane na innych systemach, ale raczej nic tu nie może nawalić...


Też może o dziwo. Niedawno był śmieszny bug w Macach. Powiedzmy że była sobie wersja MacOS 10.9.5. I teraz wychodzi 10.10.
Niektóre programy przy aktualizacji wywalały że masz za stary system. Bo dla nich 10.10 = 10.1 a 10.1 jest mniejsze niż 10.9. Ot, głupie a jednak.

Dnia 04.10.2014 o 17:39, AveMe napisał:

Nie sprawdzałem, ale raczej w Javie też można takie dane otrzymać.


Można, i owszem. Ale programiści to w większości leniwe istoty. I jeśli w samych rozwiązaniach open source (a takie były w moim linku) znalazły się tysiące linii kodu tego typu to przynajmniej tyle samo znalazło się w innych aplikacjach. A problem z tego co widziałem występuje w Javie... która jest dość popularna jednak i może akurat ktoś będzie potrzebować konkretnej wersji? Wcale bym się nie zdziwił gdyby to zresztą Oracle bądź podobna firma właśnie poinformowała o tym Microsoft i doszło do zmiany nazewnictwa - jak kiedyś wyciekł kod Windowsa 2000 to widać było iż w systemie znalazło się mnóstwo kodu odpowiedzialnego za wsparcie np. starych wersji Office''a oraz starszych aplikacji innych większych przedsiębiorstw.

Ot, ten problem może dotykać jakąkolwiek już nierozwijaną a wciąż używaną aplikację która wyszła w czasach pomiędzy Windows 2000 a Windows 7. Jasne, Windows Vista to 6.0 a Siódemka to 6.1. Ale już sam Microsoft pisał w swoim czasie:

http://www.businessweek.com/the_thread/techbeat/archives/2008/10/why_does_window.html

"Many programs check the version number of the operating system and will not install if the number falls outside a specified range. Microsoft insists that virtually all programs that run on Vista will run without alteration of Windows 7 and it doesn''t want installations to bomb just because of a failed version number check. So what is officially known as the "major version number" was kept at 6."

Oczywiście można by do sprawy podejść bez PR-u i tylko pozmieniać wartości zwracanych funkcji np. w stylu:
string osName::startsWith()
{
return "Windows 8.2";
}

Ale przy okazji uznano że można od razu podmienić nazwę na wyższą jak powód (nie taki zresztą głupi) się znalazł.
Ot, lepiej żeby Microsoft u siebie "poprawił" to raz (cudzysłów bo jego winy tutaj nie ma, jeśli już to zewnętrznych programistów że nie chciało im się pisać linijki kodu więcej) aniżeli żeby konieczne było poprawianie kodu tysięcy programów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Zaloguj się, aby obserwować