FileChooser changes have broken windows build using Windows SDK 7.1A

This change here:

Adds the usage of IUnknown_GetWindow which requires _WIN32_IE >= _WIN32_IE_IE501 but #define _WIN32_IE 0x0500 in juce_BasicNativeHeaders.h. XP was bundled with IE6, so not sure why the IE version is set so low.

Better question, why am I building against SDK 7.1A? I’m building with VS2017 and in Projucer I have left Windows Target Platform blank, which should use latest 10 SDK. I have 7, 8 and 10 SDKs installed.

Thanks for flagging this, I’ve incremented _WIN32_IE. I think you’re right that it doesn’t need to be set so low.

If the field is set to “Latest”, or left blank, the SDK should be located using

$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))

If you open the properties for your target in VS 2017, you can check that the “Windows SDK Version” field is set to this value. If some other value is being used, there may be an issue in the jucer project, or something may have broken during export. If the field is set to this value, then this might indicate a configuration issue on the build machine.

1 Like



Looks correct. Not sure why it’s going wrong.

For me, the property pages dialog actually shows the $([Microsoft.Build.Utilities... line under “Windows SDK Version”. This property does only take effect if WindowsTargetPlatformVersion isn’t already defined, so perhaps it’s defined elsewhere in the project. If you search the project folder for this string, is it defined anywhere else? Alternatively, if you search for 7.0 in the project, can you find where that value is coming from?

If I change my Platform Toolset to v141, then I see what you see and get SDK 10, if I set it to v141_xp, then SDK gets held back to SDK 7.

Time for me to drop XP support I think.