Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does RAD Studio Seattle 10 install Windows 10 SDK? (and does it work with newer SDKs?)

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:

enter image description here

This installer then starts installing the original RTM Windows 10 SDK as follows:

enter image description here

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:

  • On your RAD Studio ISO, examine ``\Install\Setup.exe` in 7-Zip.
  • There is a setup.res file; open that inside 7-Zip also.
  • Inside setup.res you will find the MSSDKInstall.exe that you see in the first screenshot above. Open it inside 7-Zip.
  • You'll then see several files:
    • 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.

like image 979
James Johnston Avatar asked Mar 16 '16 20:03

James Johnston


People also ask

What is Windows 10 SDK used for?

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.

Is Windows 10 SDK required for C++?

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.

Where does Windows 10 SDK install?

By default, the Windows 10 SDK is installed into the "C:\Program Files (x86)\Windows Kits\10" folder.

Does Visual Studio need Windows SDK?

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.


2 Answers

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.

like image 158
Uwe Raabe Avatar answered Oct 19 '22 17:10

Uwe Raabe


As mentioned here You need to have the Windows 10 SDK on your development system, to create the .appx packages.

like image 1
Dreamer64 Avatar answered Oct 19 '22 18:10

Dreamer64