Share via


How to use the Windows 10 SDK in Visual Studio 2013 ?

Question

Wednesday, May 4, 2016 12:09 PM

Hi

I have Visual Studio 2013 Professional running on Windows 10, and i want to use the Windows 10 SDK because i need to write a small D3D12 path in my app. You might ask : Why would you need D3D12 immediately ?

I have developed a Software Video Recorder kinda like OBS ( Open Broadcaster Software ), but far more advanced. It took 3 years of developement and will be released in an open beta in 1-2 months. My App works with games in all D3D modes ( well nearly all ... ), all bit depths and all window modes. You can even switch between Desktop and Games while recording ( similar to OBS ), the app captures everything that is on screen no matter what app in whatever state is on screen ( thats something OBS cant as it needs Borderless Window setting ingame for the Desktop Duplication API ).

The point is i need to write some D3D12 rendering paths here and there to make the app work with DX12 Games ( which currently begin to come in; Battlefield 5 in autumn for example ). I installed the Targeting Pack for NET 4.6 so i can build apps targeting that framework. But when i install the Windows 10 SDK the default SDK and so the include path stays the same ( Windows 8.1 SDK ).

I know that in VS 2015 you can select the target SDK like described here :

https://msdn.microsoft.com/de-de/library/mt186161.aspx

Since we dont have this option in VS 2013 we have to use a property sheet i guess and set all the includes by hand. I found this blog post which describes it for targeting the Windows 8 SDK :

https://blogs.msdn.microsoft.com/vcblog/2012/11/23/using-the-windows-8-sdk-with-visual-studio-2010-configuring-multiple-Projects/

I already started writing my own property sheet and setting the include paths but they are different to Windows 8 SDK of course and so its kinda messy ( searching for the correct paths/files in Windows Explorer ).

I would have bought VS 2015 if the launch price wouldnt be that high as it always is in Germany ( 600-700 Euro ). I am realy wondering why there is no upgrade solution offered by Microsoft. There are already a lot of negative ratings on the official Visual Studio website because of this, and there are also some rants here and there over at Stackoverflow about this. I just bought VS 2013 Professional for 600 Euros 16 months ago and now i would have to pay it again just because there is no upgrade path.

 @ Microsoft : Please give us some help on how to use the Windows 10 SDK in older Visual Studio versions.

If someone else knows an easier way than using a property sheet please let us know.

Regards,

co0Kie

All replies (3)

Wednesday, May 4, 2016 12:29 PM ✅Answered

Hi co0Kie,

There is a blog post regarding Windows 10 SDK which also has the props available as download:

https://blogs.msdn.microsoft.com/chuckw/2015/07/30/windows-10-sdk-rtm/

With kind regards,

Konrad


Wednesday, May 4, 2016 3:24 PM ✅Answered

Thank you Konrad

I must be blind as i know that site already. Somehow i overlooked the link for the Zip file down there.

In the meantime i solved the problem using the link from my first post. Its very simple :

->

1) In the Property Manager right click on the project and add a new Property Sheet.

2) Double click that Property Sheet and under User-Macros add the following macros

    1. Name = WindowsSDK10_Directory

        Value = $(ProgramFiles)\Windows Kits\10

    2. Name = WindowsSDK10_ExecutablePath

        Value = $(ProgramFiles)\Windows Kits\10\bin\x86;

                    $(ProgramFiles)\Microsoft SDKs\Windows\v10.0A\NETFX 4.6 Tools

    3. Name = WindowsSDK10_IncludePath

        Value = $(ProgramFiles)\Windows Kits\10\Include\10.0.10586.0\um;

                    $(ProgramFiles)\Windows Kits\10\Include\10.0.10586.0\shared;

                    $(ProgramFiles)\Windows Kits\10\Include\10.0.10586.0\winrt

    4. Name = WindowsSDK10_LibraryPath_x86

        Value = $(ProgramFiles)\Windows Kits\10\lib\10.0.10586.0\um\x86

    5. Name = WindowsSDK10_LibraryPath_x64

        Value = $(ProgramFiles)\Windows Kits\10\lib\10.0.10586.0\um\x64

3) Now replace the necessary macros under VC++ Directories like this :

    Executable Paths =

    replace $(WindowsSDK_ExecutablePath) with $(WindowsSDK10_ExecutablePath)

    Include Paths =

    replace $(WindowsSDK_IncludePath) with $(WindowsSDK10_IncludePath)

    Library Paths =

    replace $(WindowsSDK_LibraryPath_x86) with $(WindowsSDK10_LibraryPath_x86)

    Exclude Paths =

    replace $(WindowsSDK_IncludePath) with $(WindowsSDK10_IncludePath)

->

The macros set under point 3 are for an x86 app. Of course you have to use the $(WindowsSDK10_LibraryPath_x64) macro when you want to build x64. You can set a checkmark on a user defined macro to make it build wide available, regardless of x86 or x64 ( so you only have to add a macro once ).

And thats it. Well there is the WindowsSDK_MetadataPath left on WinRT Paths, but hey it works at the moment so i dont care. The metadata path seem to be different from older SDK's to the new one. Maybe someone could clarify this.

Regards,

co0Kie


Wednesday, May 4, 2016 3:37 PM

Hi co0Kie,

I am glad that you solved your problem and thank you for sharing the details.

With kind regards,

Konrad Neitzel

Edit: I marked your reply as answer again, because from my perspective this summary of your solution includes details that might be of interest for others, too. I hope you do not see this action as abusive (feel free to unmark it again if you do not agree!)