The Windows SDK version 7.0 was not found - c++

I have a console C++ project which uses Boost and Catch using Visual Studio 2017 Community Edition. It was building fine last night and today it says,
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140\Toolset.targets(34,5): error MSB8036: The Windows SDK version 7.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
Specifically, what doe this means?
The Windows SDK version 7.0 was not found. Install the required version of Windows SDK
I repaired Visual Studio and that didn't work so it's not Visual Studio. I can compile other C++ projects.
Web-searches doesn't really find Windows SDK version 7.0, there is Windows SDK for Windows 7.
I'm completely baffled by this error.

I figured it out. Very silly problem.
The second line, "Windows SDK Version" had somehow gotten 7 on it.

Related

Why do I get "Illegal Instruction" error when Building on windows10 and running on Windows7

I have a c++ program built using VS2017 on windows7.
When I run it on Windows7 or windows10 there is no problem.
If I Build the same program on Windows10 (still using VS2017) the program runs OK on Windows10 but when I try to run it on Windows7 I get an "0xC000001D: Illegal Instruction." error.
Is it even possible to run programs built in Windows10 on Windows7 ? and if so what can I do?
Thanks
The default SDKs will be different on your two VS2017 installations. Right-click the project, select "properties", then the "General" page. See Windows SDK Version.
You can install different SDK versions (and different Platform Toolsets) using the Visual Studio installer ("Modify").
You would probably need to install the v140 toolset.
Also see the response here:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/e19634d8-f635-4ed0-b8d7-45b64ccbd6fa/windows-sdk-7-in-visual-studio-2017?forum=visualstudiogeneral
...which states:
You can create a project with the default project template. After that, right click the project name under Solution Explorer and go to Configuration Properties-General, modify the 'Platform Toolset' to Windows7.1SDK, since you already installed the Windows SDK 7. Please have a look at the following note:
##To change the target platform toolset, you must have the associated version of Visual Studio or the Windows Platform SDK installed. For example, to target the Itanium platform with the Windows7.1SDK platform toolset, you must have Microsoft Windows SDK for Windows 7 and .NET Framework 4 SP1 installed
If the above not works, you can also modify the platform toolset to Visual Studio 2010 (v100), which has the same compiler like Windows SDK 7, if you have the VS 2010 and VS 2017 on the same computer

How can I set up Visual Studio 2017 to develop drivers?

According to this forum, https://answers.microsoft.com/en-us/windows/forum/windows_10-hardware-winpc/windows-wdk-on-visual-studio-2017-community/fdbd2b44-e57a-4849-903d-04001205a764
Windows Driver Kit is not currently supported by visual studio 2017.
I tried installing the Windows Driver Kit, but the test driver projects, such as this one, fail to build
https://github.com/Microsoft/Windows-driver-samples/tree/master/serial/VirtualSerial
I get this error when building:
Error MSB8020 The build tools for WindowsUserModeDriver10.0 (Platform Toolset = 'WindowsUserModeDriver10.0') cannot be found. To build using the WindowsUserModeDriver10.0 build tools, please install WindowsUserModeDriver10.0 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution".
I already tried retargeting the Solution to the two options I have: 10.0.17134.0 and 8.1, but the same error keeps coming up.
What do I need to do to build this sample driver? Do I need to install VS2015? VS2017 community edition? Why isn't this WDK supported by the Visual Studio 2017 professional version?
Thanks,
Visual Studio 2017 definitely supports kernel-mode device driver development; there's no doubt about that because I've been using VS17 for it for many, many months.
Use the latest version of Windows Driver Kit (WDK) which can be downloaded and installed from MSDN: https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
Furthermore, you can always use the Enterprise WDK and then you can simply build using that if you wanted to from command-line. (Also can be found on page linked-to above)
Download the correct WDK installer for your edition of Visual Studio 2017:
WDK for Windows 10, version 1809 for Visual Studio Community 2017
WDK for Windows 10, version 1803 for Visual Studio Professional 2017
WDK for Windows 10, version 1709 for Visual Studio Enterprise 2017
Visit https://learn.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads for more information.
Not exactly a solution, but Windows 8.1 WDK works with Visual Studio 2017 Enterprise,
Download it from here, just need to retarget the project to 8.1
https://www.microsoft.com/en-us/download/confirmation.aspx?id=42273
In addition, I needed to get VS2015 C++ Build Tool to fix a missing Microsoft.cpp.props error
http://download.microsoft.com/download/5/F/7/5F7ACAEB-8363-451F-9425-68A90F98B238/visualcppbuildtools_full.exe
Developing drivers to windows is quite interesting one will be exposed to advanced Operating System Concepts.The set up for the environment will be IDE
IDE - Visual Studio (https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16)
Compilers (WDK)
Debugger (WDK)
WDK contains both(https://go.microsoft.com/fwlink/?linkid=2085767). Latest Visual Studio(VS2019) will come along with the latest WDK(10, 1903 as of now).
Sometimes plugins might not work properly i.e integration issues between Visual Studio and WDk.
By going to the location "C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019" and run VSIX installer.
Now in a new project, driver related templates are available.

How do I install Windows 10 SDK for use with Visual Studio 2017

I can't figure out how to install Windows 10 SDK for Visual Studio 2017.
I downloaded and ran the Windows 10 SDK installer, and it displays Please find winsdksetup.exe in ....\Windows kits\10\WindowsSDK to install Windows Software Development Kit - Windows 10.0.17134.12.
When I run winsdksetup.exe, it takes me through the same loop, where it downloads a bunch of executable installers into this directory and show the same exact message.
When I try to build a DirectX project in VS2017, I get the error:
MSB8036 The Windows SDK version 10.0.16299.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
Do I need to install one of those installers? Which one do I need to run to build and debug DirectX projects for Visual Studio? Specifically to use VS2017 shader debugging functionality.
Thanks,
EDIT:
Under VS2017 - Tools -> Get Tools and Features
I have checked
Game Development with C++
and under Optional I have
C++ Profiling tools
Windows 10 SDK (10.0.17134.0)
I'm downloading 16299.0, this fixed the first error of not having the right SDK.
But now I get the runtime error Failed Creating the Direct3D device when running in Debug. I can still run samples in Release
The error message shows which SDK you need:
The Windows SDK version 10.0.16299.0 was not found
So the SDK for Windows 10 Fall Creators Update 1709 is missing and you downloaded the SDK for April 2018 Update (1803 Build 17134).
Run Visual Studio 2017 installer (C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe), click on modify, and select 16299 SDK under SDK/framework in individual components tab of the installer:
You can download the required Windows SDK versions from Microsoft:
https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/
Just install the required version and the build should work.

Where is WDF template after installing wdk?

visual studio community 2017 + wdk 10.0.15063.0 + sdk 10.0.15063.137
I installed vs2017 first,and then,the wdk.
However I cound't find the WDF template when I try to create a KMDF.
Appreciate for any help.
The WDK Build 15063 for Windows 10 v1703 only supports Visual Studio 2015. So for driver development you have to stay on the older VS2015 until a compatible version is available to be used in VS2017.
Starting with WDK Build 16299 for Windows 10 v1709 VS2017 is now the only supported option. So if you want to use only VS2017, install the WDK Build 16299/Win10 v1709.
If you still have issues, try to install the matching Windows 10 SDK (same Build number). This fixed the issue for an user.

Targeting Windows XP using Build Tools 2015 without Visual Studio

I installed Visual C++ Build Tools 2015 on my machine running Windows 7.
In Windows SDK 8.1 and 10 there is no Windows XP targeting platform support.
It was introduced in Windows SDK 7.1A, but I can't find the download for it. It is also included in Visual Studio 2012 Update 4, but I would rather not install Visual Studio for it.
Is there any way to target Windows XP (v110_xp) using only Build Tools 2015?
I think SDK 7.1 + Visual Studio 2010 were the last version to support XP without having to install an additional taget Windows SDK 7.1. But it is tricky to install old versions of that SDK if you have installed more recent version of VS. Also VS2010 doesn't have complete support for the C++11 since it predates that.
Since SDK 8 the compilers are not included, and should be installed from VS Express and/or Community. See this if you want to compile C++11 code tagetting XP Configuring C++ 11 Programs for Windows XP. If I recall correctly the _xp taget was not included in the RTM version, and you should install the SP1.