Why not use the manifest workaround?
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
* <!-- Windows 8.1 -->
* <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
Raul
On Oct 20, 2013, at 4:56 PM, MuldeR <[email protected]> wrote:
> Hello.
>
> As you might have read, with Windows 8.1, the GetVersion(Ex) API has been
> deprecated by Microsoft and will now pretend to be Windows 8.0 (NT v6.2),
> even when running under Windows 8.1 (NT v6.3). And yes, officiallay and in
> other API's, Windows 8.1 is NT v6.3.
>
> See here for details:
> http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx
>
> Microsoft says that they did this in order to prevent compatibility problems.
> I think it is a horrible idea to break the API in that way. It is also the
> reason why Qt happily detects Windows 8.1 as Windows 8. Actually Qt should
> detect an “unknown” operating system, since there is no 8.1 (NT v6.3
> )detection code yet - I have checked latest version in Git. But Qt detects NT
> v6.2, thanks to Microsoft's GetVersion(Ex) hack. In other words:
> QSysInfo::windowsVersion() reports wrong info, starting with (and probably
> not limited to) Windows 8.1.
>
> So let's fix QSysInfo!
>
> I have pulled together a solution that is based on the VerifyVersionInfo()
> API, which has not been broken, fortunately. Basically, we first call
> GetVersionEx() to get the "fake" version as a starting point. Then we try to
> increase the version numbers from there, calling VerifyVersionInfo() each
> time in order to make sure we did not exceed the *real* version. End result
> will be the maximum supported version, i.e. the *real* version number.
>
>
> Code is here:
> http://pastie.org/private/kkva8pkk7nzcmm8jjwstfa
>
> Tested on: Windows XP (RTM), Windows 7 SP-1, Windows 8.0, Windows 8.1
>
> (should work on Windows 2000 too, but I don't really care)
>
>
> Output on Windows 7:
>> (Fake) Windows Version: 6.1
>> Trying to verify: 7.0 -->NO
>> Trying to verify: 6.2 -->NO
>> *Real* Windows Version: 6.1
>
> Output on Windows 8.0:
>> > (Fake) Windows Version: 6.2
>> > Trying to verify: 7.0 -->NO
>> > Trying to verify: 6.3 -->NO
>> > *Real* Windows Version: 6.2
>
> Output on Windows 8.1:
>> (Fake) Windows Version: 6.2
>> Trying to verify: 7.0 -->NO
>> Trying to verify: 6.3 -->YES
>> Trying to verify: 6.4 -->NO
>> *Real* Windows Version: 6.3
>
>
> Regards,
> MuldeR
>
> _______________________________________________
> Development mailing list
> [email protected]
> http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development