At the end of C++Builder Seattle 10 Update 1 installation, Embarcadero's main setup starts an additional embedded setup program called Microsoft Windows 10 SDK Installer. This is what it looks like, in case you forgot:
This installer then starts installing the original RTM Windows 10 SDK as follows:
Why does C++Builder install this? How does C++Builder link with the SDK - what exactly is it using? If I install a newer Windows SDK (e.g. the one released Nov 2015) instead, will it work? (It's hard to imagine how, since everything is set up in the IDE to use files from C:\Program Files (x86)\Embarcadero\Studio\17.0\include\windows\sdk
and these files include changes made by Embarcadero to the SDK, e.g. special bcc32 pragma
statements.)
I have analyzed the installation files of RAD Studio to try to figure out what's going on, but I don't have a good answer for WHY they are doing what they do:
setup.res
file; open that inside 7-Zip also.setup.res
you will find the MSSDKInstall.exe
that you see in the first screenshot above. Open it inside 7-Zip.MSSDKInstall.msi
: if you open this up with Orca you'll see that this is a very simple installer that installs some Bluetooth header files into the Embarcadero include
directory.OFFLINE
directory: contains 8 different Windows SDK header files apparently used by the MSI: BluetoothAPIs.h
, bluetoothleapis.h
, bthdef.h
, bthledef.h
, bthsdpdef.h
, no_sal2.h
, winapifamily.h
, ws2bth.h
.It additionally appears that this separate installer conflicts with the main RAD Studio installer. The main installer also installs these same header files. Then this installer is run, and replaces these files. Then it kicks off the official Microsoft Windows 10 SDK installer for some unknown reason. If you uninstall the Embarcadero SDK installer package, it deletes those 8 header files entirely (thus the conflict).
So: (1) why didn't they just include those 8 header files in the main installation - what was the point of all this, (2) why do they start the official Microsoft Windows 10 SDK installer, (3) is there some integration I'm not aware of?
The official docs are near useless: Installation Notes: Installing the Windows 10 SDK.
The installation wizard of RAD Studio Seattle allows you to install the Microsoft Windows 10 SDK, which adds headers for the Windows API.
Note: The Windows 10 SDK is only a requisite for C++Builder in order to support direct calls to the Bluetooth and the BluetoothLE Windows APIs.
But Microsoft's SDK installer does not put the headers into the Embarcadero include
directory. It is, in fact, Embarcadero who does this by bundling the files in their own installer, as evidenced above.
The Windows App SDK provides a unified set of APIs and tools that are decoupled from the OS and released to developers via NuGet packages. These APIs and tools can be used in a consistent way by any desktop app on Windows 11 and downlevel to Windows 10, version 1809.
It is not necessary if you limit yourself to what is possible with standard C++ (console-only output, using the C++ standard library, etc). If you don't know, but have in mind "I just want my applications to have a windows interface" then you need the windows SDK. Well, technically, you don't need the SDK.
By default, the Windows 10 SDK is installed into the "C:\Program Files (x86)\Windows Kits\10" folder.
Install the Visual Studio SDK The Visual Studio SDK (Software Development Kit) is an optional feature in Visual Studio setup. You can also install the VS SDK later on.
The installation of the Windows 10 SDK is just Embarcadero fulfilling a a requirement from Microsoft. It has no influence onto your RAD Studio installation. In other words: if you cancel that setup you are doing no harm.
As mentioned here
You need to have the Windows 10 SDK on your development system, to create the .appx
packages.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With