On 1/9/2014 6:46 AM, Dongsheng Song wrote:
[1] GetVersionEx may be altered or unavailable for releases after
Windows 8.1. Instead, use the Version Helper APIs.
> [1]
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724451%28v=vs.85%29.aspx
Scandalous! According to that page, Microsoft has essentially sabotaged
one of the first functions called by most language runtimes and also
introduced rules to actively prevent applications from sanely dealing
with OS differences. For instance, it seems there is no longer any
interface to detect if the OS was made *after* the application code and
may thus differ subtly from whatever the application knows about the
OS-es in existence at the time.
I thinks use 'Version Information Functions'[2] is the better choice.
[2]
http://msdn.microsoft.com/en-us/library/windows/desktop/ff468915%28v=vs.85%29.aspx
Well, those functions (or something even more low-level in case
Microsoft sabotages these too), could be a way to work around the
sabotage introduced in Windows NT 6.3 (Marketed as 8.1).
On Thu, Jan 9, 2014 at 3:11 AM, Jakob Bohm <jb-open...@wisemo.com> wrote:
While I have not specifically checked the Windows 8 SDK, my extensive
experience with the version detection APIs in Windows tells me the
following:
1. GetVersion() is the only version-detection API available on older
platform versions. Later platform versions added variants of
GetVersionEx(), with each newer variant being available on less
platforms.
2. The order of the bit fields returned by GetVersion() has
historically confused many developers, therefore Microsoft has long
told people to avoid it if they don't know what they are doing.
At one point, even the editor of the GetVersion() documentation
got confused!
3. Starting a few years ago, Microsoft began a trend of using the
compiler "__declspec(deprecate)" mechanism to scare developers
away from functions that are not really deprecated, just not
recommended for some other reason. Those deprecations can
usually be ignored safely by those with good reason to use those
more portable APIs.
So, if this is just another "political" compiler warning, there is
little reason to head it.
Otherwise, the GetVersionEx() function can be used as a replacement,
but only by dropping support for Windows NT 3.10 and maybe Win32s
(NT 3.50 and all the Win9x and WinCE variants include the basic
form of GetVersionEx()).
P.S.
If there is still code in there to support 16 bit Windows 3.x, then
that API includes only GetVersion(), and with a different
specification than its 32/64 bit namesake.
Enjoy
Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S. http://www.wisemo.com
Transformervej 29, 2730 Herlev, Denmark. Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager majord...@openssl.org