Re: Непростой вопрос.

From
Andy Malakov (2:5020/423.33)
To
Boris Rudakov ()
Date
1996-06-26T18:35Z
Area
SU.WINDOWS.PROG
Hello Boris!

26 Jun 96 08:58, Boris Rudakov wrote to Andy Malakov:

 BR>>> программа: Win32/Win16, Win95/WinNT. Матрица 2х2. С Win32 все
 BR>>> очень просто - GetVersion все скажет. А вот как может Win16
 BR>>> ОДНОЗНАЧНО выяснить, что работает под NT ?
 BR>>>  NT врет ей, что версия     3.1
 AM>> Рихтер - стр. 24             3.95 for Win95/NT !

                                   ~~~~

 BR> Замечательно. Я так и знал, что можно.
 BR> Краткость ответа тоже приятно удивляет. :)
 BR> Тем не менее, Рихтера у меня, как несложно догадаться, нет (иначе я бы его
 BR> уже прочитал и не задавал таких вопросов).

Внимательнее погляди мой давешний ответ(справа) :)

 BR> Не будет ли очень сложно его процетировать, не-нет, не всю страницу, а
 BR> только парочку абзацев ?


DWORD GetVersion(VOID);
Первоначально предполагалось в старшем слове версия MSDOS а в младшем Windows.
Соответственно в каждом слове старший байт - номер основной версии, младший -
дополнительный подномер версии.

" А дальше все было не просто. К сожалению, программист, написавший ее код, чуточку ошибся, и получилось так - в старший байт заносится дополнительный номер версии, а в младший - основной. Ну а поскольку многие программисты уже начали пользоваться этой функцией, Microsoft пришлось оставить все, как есть, и изменить документацию с учетом ошибки.
 Однако на этом инцидент не был исчерпан. Часть программистов все-таки запуталась в функции GetVersion. ... Пока приложения работали под Windows 3.1
все было в порядке, но когда Microsoft, начав переход на Windows 95, стала тестировать в ней существующие приложения, выяснилось, что многие из них отказывались работать - код определения версии в них был написан неправильно.
Вот почему было решено изменить GetVersion всех будущих версий Windows95 и WindowsNT так, чтобы она всегда возвращала только один номер 3.95 ."

В Win32 Microsoft ввела GetVersionEx(LPOSVERSIONINFO)


Andy

--- GEcho 1.11+
 * Origin: Ecce homo (2:5020/423.33)