Windows 10 Manifest Gotcha

As per https://forum.xojo.com/2239-how-to-determine-os-which-version-and-which-ver-of-windoz it turns out that Windows 10 (and Windows 8.1) will lie to you application about what version they are. The solution is to update the Manifest data inside the EXE as per https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241(v=vs.85).aspx

So I did a little test in which I simply hacked in the new bytes into a previously-built EXE (making sure to keep the EXE the same length). There wasn’t room to include the entire list of GUIDs so I just included the latest two (Windows 10 and Windows 8.1).

My app seemed to work fine, and windows version #s show up properly.

However - I realized that OpenGL stopped working - no matter what I did, i always got the OpenGL 1.1 software (non-accelerated) renderer.

So for now, I’m going to un-do my addition and just manifest the app as being for Windows 7 and 8, as that doesn’t seem to break anything.

See related thread: https://forum.xojo.com/2239-how-to-determine-os-which-version-and-which-ver-of-windoz

How about making feature requests to Xojo to support manifest things in the compiler?

Like having a good default manifest in the exe automatically.
Or some checkboxes to have some settings to be set easily for building windows app.

It’s already there: <https://xojo.com/issue/6297> dates from 2008!

+1

The last statement, by Geoff, on the case, gives some hope that a feature that should really be here (been in VB .NET for quite a while) will at last make an appearance in the lesser child.

Geoff Perlman on Jan 28, 2015 at 5:22 PM Once we have 64 bit support, we will be linking for Windows with a native linker. At that point, we could easily provide access to the manifest file so that you could make changes in a build step.

Note the “we could”, though. Please add support to make it happen. It is time we get decent manifest support.