Как установить windows sdk visual studio

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 kits10Wind...

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 kits10WindowsSDK 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

Table of Contents

  • Prerequisites
    • SDK
  • Steps

Prerequisites

If you want to develop a windows universal application then you need the following three things:

  • Windows 10 installed
  • Visual Studio Community/Pro/Enterprise 2015
  • Universal App SDK

Some people are facing an issue with the third point, this includes me and many of my friends. Now I have found a way to solve it and want to share with you guys.

SDK

A General way to install SDK is that when you create a universal app project it asks you to install the SDK and gives you the download option there. When you click it the installation starts but some people are facing an issue that after the installation
they still see the same download option in VS 2015 and can’t create the universal project.

So here is what you need to do:

Open Program and Features in your control panel and search for «Windows Software Development Kit». If it is installed, then uninstall it.

After uninstalling it, select «Microsoft Visual Studio Enterprise 2015» and click on «Change»

A new dialog of Visual Studio will open giving you three options. Select «Modify»

 

Next screen will give you option to select multiple features to be installed. Select «Universal Windows App Development Tools» it will automatically select all the sub-menus in it. It will require 4GB of space approx.

 

Then click on «UPDATE».

The next step will require some time, for me it was around 3 hours! It may seem that the setup has been stuck but it will make a jump move after some time so don’t panic, just wait!

After the update; it will notify you. Then restart your PC

Steps

Now open Visual Studio, Click on new project, select Universal in Windows and there you go, now you can create Universal Apps.

SDK has been installed and integrated in VS 2015.

Enjoy your development now :-)  

title description author ms.author ms.date

Install .NET on Windows

Learn about the different ways you can install .NET and which versions of Windows support .NET.

adegeo

adegeo

12/21/2022

Install .NET on Windows

[!div class=»op_single_selector»]

  • Install on Windows
  • Install on macOS
  • Install on Linux

In this article, you’ll learn how to install .NET on Windows. .NET is made up of the runtime and the SDK. The runtime is used to run a .NET app and may or may not be included with the app. The SDK is used to create .NET apps and libraries. The .NET runtime is always installed with the SDK.

The latest version of .NET is 7.

[!div class=»button»]
Download .NET

There are two types of supported releases, Long Term Support (LTS) releases or Standard Term Support (STS). The quality of all releases is the same. The only difference is the length of support. LTS releases get free support and patches for 3 years. STS releases get free support and patches for 18 months. For more information, see .NET Support Policy.

The following table lists the support status of each version of .NET (and .NET Core):

✔️ Supported ❌ Unsupported
7 (STS) 5
6 (LTS) 3.1
3.0
2.1
2.0
1.1
1.0

Install with Windows Package Manager (winget)

You can install and manage .NET through the Windows Package Manager service, using the winget tool. For more information about how to install and use winget, see Use the winget tool.

If you’re installing .NET system-wide, install with administrative privileges.

Install the SDK

The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don’t need to install the corresponding runtimes. To install the .NET SDK, run the following command:

winget install Microsoft.DotNet.SDK.7

Install the runtime

For Windows, there are three .NET runtimes you can install. You should install both the .NET Desktop Runtime and the ASP.NET Core Runtime to ensure that you’re compatible with all types of .NET apps.

  • .NET Desktop Runtime

    This runtime includes the base .NET runtime, and supports Windows Presentation Foundation (WPF) and Windows Forms apps that are built with .NET. This isn’t the same as .NET Framework, which comes with Windows.

    winget install Microsoft.DotNet.DesktopRuntime.7
  • ASP.NET Core Runtime

    This runtime includes the base .NET runtime, and runs web server apps. The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn’t provide the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following commands:

    winget install Microsoft.DotNet.AspNetCore.7
  • .NET Runtime

    This is the base runtime, and contains just the components needed to run a console app. Typically, you’d install the other runtimes.

    winget install Microsoft.DotNet.Runtime.7

You can install preview versions of the runtimes by substituting the version number, such as 6, with the word Preview. The following example installs the preview release of the .NET Desktop Runtime:

winget install Microsoft.DotNet.DesktopRuntime.Preview

Install alongside Visual Studio Code

Visual Studio Code is a powerful and lightweight source code editor that runs on your desktop. Visual Studio Code is available for Windows, macOS, and Linux.

While Visual Studio Code doesn’t come with an automated .NET Core installer like Visual Studio does, adding .NET Core support is simple.

  1. Download and install Visual Studio Code.
  2. Download and install the .NET SDK.
  3. Install the C# extension from the Visual Studio Code marketplace.

Install with Windows Installer

The download page for .NET provides Windows Installer executables.

When you use the Windows installers to install .NET, you can customize the installation path by setting the DOTNETHOME_X64 and DOTNETHOME_X86 parameters:

dotnet-sdk-7.0.100-win-x64.exe DOTNETHOME_X64="F:dotnetx64" DOTNETHOME_X86="F:dotnetx86"

If you want to install .NET silently, such as in a production environment or to support continuous integration, use the following switches:

  • /install
    Installs .NET.

  • /quiet
    Prevents any UI and prompts from displaying.

  • /norestart
    Suppresses any attempts to restart.

dotnet-sdk-7.0.100-win-x64.exe /install /quiet /norestart

For more information, see Standard Installer Command-Line Options.

[!TIP]
The installer returns an exit code of 0 for success and an exit code of 3010 to indicate that a restart is required. Any other value is generally an error code.

Install with PowerShell automation

The dotnet-install scripts are used for CI automation and non-admin installs of the runtime. You can download the script from the dotnet-install script reference page.

The script defaults to installing the latest long term support (LTS) version, which is .NET 6. You can choose a specific release by specifying the Channel switch. Include the Runtime switch to install a runtime. Otherwise, the script installs the SDK.

The following command installs the ASP.NET Core runtime for maximum compatability. The ASP.NET Core runtime also includes the standard .NET runtime.

dotnet-install.ps1 -Channel 7.0 -Runtime aspnetcore

Install the SDK by omitting the -Runtime switch. The -Channel switch is set in this example to STS, which installs the latest Standard Term Support version (.NET 7).

dotnet-install.ps1 -Channel STS

Install with Visual Studio

If you’re using Visual Studio to develop .NET apps, the following table describes the minimum required version of Visual Studio based on the target .NET SDK version.

.NET SDK version Visual Studio version
7 Visual Studio 2022 version 17.4 or higher.
6 Visual Studio 2022 version 17.0 or higher.
5 Visual Studio 2019 version 16.8 or higher.
3.1 Visual Studio 2019 version 16.4 or higher.
3.0 Visual Studio 2019 version 16.3 or higher.
2.2 Visual Studio 2017 version 15.9 or higher.
2.1 Visual Studio 2017 version 15.7 or higher.

If you already have Visual Studio installed, you can check your version with the following steps.

  1. Open Visual Studio.
  2. Select Help > About Microsoft Visual Studio.
  3. Read the version number from the About dialog.

Visual Studio can install the latest .NET SDK and runtime.

[!div class=»button»]
Download Visual Studio.

Select a workload

When installing or modifying Visual Studio, select one or more of the following workloads, depending on the kind of application you’re building:

  • The .NET Core cross-platform development workload in the Other Toolsets section.
  • The ASP.NET and web development workload in the Web & Cloud section.
  • The Azure development workload in the Web & Cloud section.
  • The .NET desktop development workload in the Desktop & Mobile section.

Windows Visual Studio 2019 with .NET Core workload

Supported releases

The following table is a list of currently supported .NET releases and the versions of Windows they’re supported on. These versions remain supported until either the version of .NET reaches end-of-support or the version of Windows reaches end-of-life.

Windows 10 versions end-of-service dates are segmented by edition. Only Home, Pro, Pro Education, and Pro for Workstations editions are considered in the following table. Check the Windows lifecycle fact sheet for specific details.

[!TIP]
A + symbol represents the minimum version.

Operating System .NET 7 .NET 6
Windows 11 ✔️ ✔️
Windows Server 2022 ✔️ ✔️
Windows Server, Version 1903 or later ✔️ ✔️
Windows 10, Version 1607 or later ✔️ ✔️
Windows 8.1 ✔️
Windows 7 SP1 ESU ✔️
Windows Server 2019
Windows Server 2016
Windows Server 2012 R2
Windows Server 2012
✔️
Windows Server Core 2012 R2 ✔️ ✔️
Windows Server Core 2012 ✔️ ✔️
Nano Server, Version 1809+ ✔️ ✔️
Nano Server, Version 1803

For more information about .NET 7 supported operating systems, distributions, and lifecycle policy, see .NET 7 Supported OS Versions.

Unsupported releases

[!INCLUDE versions-not-supported]

Runtime information

The runtime is used to run apps created with .NET. When an app author publishes an app, they can include the runtime with their app. If they don’t include the runtime, it’s up to the user to install the runtime.

There are three different runtimes you can install on Windows:

  • ASP.NET Core runtime
    Runs ASP.NET Core apps. Includes the .NET runtime.

  • Desktop runtime
    Runs .NET WPF and Windows Forms desktop apps for Windows. Includes the .NET runtime.

  • .NET runtime
    This runtime is the simplest runtime and doesn’t include any other runtime. It’s highly recommended that you install both ASP.NET Core runtime and Desktop runtime for the best compatibility with .NET apps.

[!div class=»button»]
Download .NET Runtime

SDK information

The SDK is used to build and publish .NET apps and libraries. Installing the SDK includes all three runtimes: ASP.NET Core, Desktop, and .NET.

[!div class=»button»]
Download .NET SDK

Arm-based Windows PCs

The following sections describe things you should consider when installing .NET on an Arm-based Windows PC.

What’s supported

The following table describes which versions of .NET are supported on an Arm-based Windows PC:

.NET Version Architecture SDK Runtime Path conflict
7 Arm64 Yes Yes No
7 x64 Yes Yes No
6 Arm64 Yes Yes No
6 x64 Yes Yes No
5 Arm64 Yes Yes Yes
5 x64 No Yes Yes

Starting with .NET 6, the x64 and Arm64 versions of the .NET SDK exist independently from each other. If a new version is released, each architecture install needs to be upgraded.

Path differences

On an Arm-based Windows PC, all Arm64 versions of .NET are installed to the normal C:Program Filesdotnet folder. However, when you install the x64 version of .NET 6 SDK or .NET 7 SDK, it’s installed to the C:Program Filesdotnetx64 folder.

Path conflicts

Starting with .NET 6, the x64 .NET SDK installs to its own directory, as described in the previous section. This allows the Arm64 and x64 versions of the .NET SDK to exist on the same machine. However, any x64 SDK prior to 6 isn’t supported and installs to the same location as the Arm64 version, the C:Program Filesdotnet folder. If you want to install an unsupported x64 SDK, you’ll need to first uninstall the Arm64 version. The opposite is also true, you’ll need to uninstall the unsupported x64 SDK to install the Arm64 version.

Path variables

Environment variables that add .NET to system path, such as the PATH variable, may need to be changed if you have both the x64 and Arm64 versions of the .NET SDK installed. Additionally, some tools rely on the DOTNET_ROOT environment variable, which would also need to be updated to point to the appropriate .NET SDK installation folder.

Dependencies

.NET 7

The following Windows versions are supported with .NET 7:

[!NOTE]
A + symbol represents the minimum version.

OS Version Architectures
Windows 11 21H2+ x64, Arm64
Windows 10 Client 1607+ x64, x86, Arm64
Windows Client 7 SP1+, 8.1 x64, x86
Windows Server 2012+ x64, x86
Windows Server Core 2012+ x64, x86
Nano Server 1809+ x64

For more information about .NET 7 supported operating systems, distributions, and lifecycle policy, see .NET 7 Supported OS Versions.

.NET 6

The following Windows versions are supported with .NET 6:

[!NOTE]
A + symbol represents the minimum version.

OS Version Architectures
Windows 11 21H2+ x64, Arm64
Windows 10 Client 1607+ x64, x86, Arm64
Windows Client 7 SP1+, 8.1 x64, x86
Windows Server 2012+ x64, x86
Windows Server Core 2012+ x64, x86
Nano Server 1809+ x64

For more information about .NET 6 supported operating systems, distributions, and lifecycle policy, see .NET 6 Supported OS Versions.

Offline install for Windows 7

[!IMPORTANT]
This section only applies to .NET Core 2.1.

When doing an offline install for .NET Core 2.1 on Windows 7, you’ll first need to make sure that the latest Microsoft Root Certificate Authority 2011 has been installed on the target machine.

The certmgr.exe tool can automate installing a certificate and is obtained from Visual Studio or the Windows SDK. The following command is used to install the certificate before running the .NET Core 2.1 installer:

certmgr.exe /add MicRooCerAut2011_2011_03_22.crt /s /r localMachine root

Be sure to review the dependencies required for Windows 7 below.


Windows 7 / 8.1 / Server 2012

More dependencies are required if you’re installing the .NET SDK or runtime on the following Windows versions:

Operating System Prerequisites
Windows 7 SP1 ESU — Microsoft Visual C++ 2015-2019 Redistributable 64-bit / 32-bit
— KB3063858 64-bit / 32-bit
— Microsoft Root Certificate Authority 2011 (.NET Core 2.1 offline installer only)
Windows 8.1 Microsoft Visual C++ 2015-2019 Redistributable 64-bit / 32-bit
Windows Server 2012 Microsoft Visual C++ 2015-2019 Redistributable 64-bit / 32-bit
Windows Server 2012 R2 Microsoft Visual C++ 2015-2019 Redistributable 64-bit / 32-bit

The previous requirements are also required if you receive an error related to either of the following dlls:

  • api-ms-win-crt-runtime-l1-1-0.dll
  • api-ms-win-cor-timezone-l1-1-0.dll
  • hostfxr.dll

Docker

Containers provide a lightweight way to isolate your application from the rest of the host system. Containers on the same machine share just the kernel and use resources given to your application.

.NET can run in a Docker container. Official .NET Docker images are published to the Microsoft Container Registry (MCR) and are discoverable at the Microsoft .NET Docker Hub repository. Each repository contains images for different combinations of the .NET (SDK or Runtime) and OS that you can use.

Microsoft provides images that are tailored for specific scenarios. For example, the ASP.NET Core repository provides images that are built for running ASP.NET Core apps in production.

For more information about using .NET in a Docker container, see Introduction to .NET and Docker and Samples.

Troubleshooting

After installing the .NET SDK, you may run into problems trying to run .NET CLI commands. This section collects those common problems and provides solutions.

  • It was not possible to find any installed .NET Core SDKs

It was not possible to find any installed .NET Core SDKs

Most likely you’ve installed both the x86 (32-bit) and x64 (64-bit) versions of the .NET SDK. This is causing a conflict because when you run the dotnet command it’s resolving to the x86 version when it should resolve to the x64 version. This is usually fixed by adjusting the %PATH% variable to resolve the x64 version first.

  1. Verify that you have both versions installed by running the where.exe dotnet command. If you do, you should see an entry for both the Program Files and Program Files (x86) folders. If the Program Files (x86) folder is first as indicated by the following example, it’s incorrect and you should continue on to the next step.

    > where.exe dotnet
    C:Program Files (x86)dotnetdotnet.exe  
    C:Program Filesdotnetdotnet.exe

    If it’s correct and the Program Files is first, you don’t have the problem this section is discussing and you should create a .NET help request issue on GitHub

  2. Press the Windows button and type «Edit the system environment variables» into search. Select Edit the system environment variables.

    :::image type=»content» source=»media/windows/start-menu.png» alt-text=»Windows start menu with edit environment variable»:::

  3. The System Properties window opens up to the Advanced Tab. Select Environment Variables.

    :::image type=»content» source=»media/windows/system-props.png» alt-text=»The Windows system properties panel open.»:::

  4. On the Environment Variables window, under the System variables group, select the Path* row and then select the Edit button.

    :::image type=»content» source=»media/windows/list-vars.png» alt-text=»The environment variables window with user and system variables.»:::

  5. Use the Move Up and Move Down buttons to move the C:Program Filesdotnet entry above C:Program Files (x86)dotnet.

    :::image type=»content» source=»media/windows/edit-vars.png» alt-text=»The environment variables list for the system.»:::

Next steps

  • How to check if .NET is already installed.
  • Tutorial: Hello World tutorial.
  • Tutorial: Create a new app with Visual Studio Code.
  • Tutorial: Containerize a .NET Core app.
  • Remove From My Forums
  • Question

  • I need to install the Windows 10 SDK into Visual Studio 2015 Community.

    I have community installed, but it does not have the SDK in there.  So I downloaded the offline installer.  It ran successfully, but it made no modification to Visual Studio, so nothing appears there template wise.

    How do you get the SDK into Visual Studio?

    Thanks.

    • Moved by

      Thursday, July 30, 2015 2:42 AM

Answers

  • Hi Chris,

    I doubt that you installed visual studio 2015 Community before July 29, Visual Studio 2015 is available several days before the final version of the Windows 10 SDK and Universal Windows App Tools.  During that brief gap, the release version of VS 2015
    will not work with the pre-release versions of the Windows 10 SDK and Universal Windows app tools so you won’t be able to develop a Universal Windows Platform (UWP) app. Refer to:

    http://blogs.windows.com/buildingapps/2015/06/29/release-dates-and-compatibility-visual-studio-2015-and-windows-10-sdk/

    But now windows 10 is released, and you could go to Control Panel, visual studio 2015 community –> change -> modify, and you will see the following window:

    And you could install the Universal Windows App Development Tools, Tools and Windows SDK 10.0.10240 from this modify window.

    Best Regards,

    Jiayi Li


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    Click
    HERE to participate the survey.

    • Proposed as answer by
      Marius G Koch
      Thursday, July 30, 2015 10:13 AM
    • Marked as answer by
      Jiayi Li
      Thursday, August 6, 2015 9:19 AM

Содержание

  1. Обзор наборов и средств
  2. ADK для Windows 11
  3. Сведения о средствах ADK
  4. Microsoft Visual Studio 2017
  5. автономный Windows SDK для Windows 10
  6. WDK 10
  7. Enterprise WDK (ЕВДК)
  8. Windows символы
  9. Windows Комплект оборудования для лаборатории (ХЛК) для Windows 10
  10. Дополнительное тестовое содержимое ХЛК
  11. Windows SDK
  12. Начало работы
  13. Системные требования
  14. Поддерживаемые операционные системы
  15. Требования к оборудованию
  16. Дополнительные требования для этого SDK
  17. Что нового
  18. Примеры
  19. Предыдущие версии пакетов SDK
  20. Активация API-интерфейсов
  21. Заметки о выпуске и известные проблемы
  22. Пакет SDK для Windows 10, версия 2104 Раскрыть заметки
  23. Пакет SDK для Windows 10, версия 2004 со служебным обновлением (выпущено 16.12.2020) Развернуть заметки
  24. Предоставить отзыв
  25. Другие ресурсы
  26. Загрузки и инструменты
  27. Архив для пакета SDK
  28. Блог Windows
  29. Информационный бюллетень о жизненном цикле Windows
  30. Пакет SDK для приложений Windows
  31. Начало работы с пакетом SDK для приложений Windows
  32. Функции пакета SDK для приложений для Windows
  33. Преимущества пакета SDK для приложений Windows, которые получат разработчики Windows
  34. Унифицированное использование API для разных платформ классических приложений
  35. Согласованные возможности в разных версиях Windows
  36. Увеличенная частота выпусков
  37. Стратегия развития для разработчиков
  38. Отзывы и участие в разработке
  39. Windows SDK
  40. Начало работы
  41. Системные требования
  42. Поддерживаемые операционные системы
  43. Требования к оборудованию
  44. Дополнительные требования для этого SDK
  45. Что нового
  46. Примеры
  47. Предыдущие версии пакетов SDK
  48. Активация API-интерфейсов
  49. Заметки о выпуске и известные проблемы
  50. Пакет SDK для Windows 10, версия 2104 Раскрыть заметки
  51. Пакет SDK для Windows 10, версия 2004 со служебным обновлением (выпущено 16.12.2020) Развернуть заметки
  52. Предоставить отзыв
  53. Другие ресурсы
  54. Загрузки и инструменты
  55. Архив для пакета SDK
  56. Блог Windows
  57. Информационный бюллетень о жизненном цикле Windows
  58. Практическое руководство. Использование пакета SDK Windows 10 в классическом приложении Windows
  59. использование правильного Windows SDK для проекта
  60. Изменение целевой платформы для пакета SDK для Windows 10
  61. Изменение целевой платформы для пакета SDK для Windows 8.1

Обзор наборов и средств

эти наборы и средства можно использовать с Windows 10 для настольных выпусков (домашняя, Pro, Enterprise и образование) и Windows 10 Mobile для разработки и производства.

Узнайте об известных проблемах и решениях для этого выпуска на наших форумах.

ADK для Windows 11

скачайте Windows ADK, чтобы установить средства и документацию для изготовителей оборудования и одмс для настройки образов Windows 10, оценки качества и производительности систем и компонентов, а также для развертывания операционных систем на новых компьютерах Windows. Windows ADK включает в себя Windows конструктор конфигураций, набор средств оценки Windows, Windows производительности набор средств, а также несколько новых и улучшенных средств развертывания, которые могут помочь в автоматизации крупномасштабного развертывания Windows 10. Дополнительные сведения см. в статье новые возможности в комплектах и средствах.

Сведения о средствах ADK

в следующих разделах приведены инструкции по использованию средств, включенных в Windows 10 ADK:

Microsoft Visual Studio 2017

начните с загрузки Visual Studio 2017 и средств Microsoft Visual Studio для Windows 10. используется совместно, Microsoft Visual Studio, Инструменты Visual Studio для Windows 10, автономного Windows пакета средств разработки программного обеспечения (SDK) для Windows 10, а Windows Driver kit (WDK) 10 предоставляют интегрированную среду разработки для создания эффективных высококачественных драйверов для устройств под управлением Windows 10.

автономный Windows SDK для Windows 10

Windows пакет SDK для Windows 10 содержит заголовки, библиотеки и инструменты, которые можно использовать при создании приложений, работающих в операционных системах Windows. вы можете использовать Windows SDK для Windows 10, а также выбранную среду разработки, чтобы создавать приложения для Windows 10 для настольных выпусков и Windows 10 Mobile.

WDK 10

WDK 10 содержит средства для создания, тестирования, отладки и развертывания драйверов для Windows 10. WDK 10 объединяет поддержку мобильных и настольных устройств, универсальные драйверы Windows и, с Visual Studio, предоставляет единый тестовый опыт для надежного развертывания и подготовки отладки, которая включает WinDbg. В интегрированной среде можно выполнять множество базовых проверок сертификации. в WDK 10 входят шаблоны для нескольких технологий и моделей драйверов, включая Windows платформы драйверов (вдф), универсальную последовательную шину (USB), печать, сети и фильтры файловой системы. WDK 10 также поддерживает разработку драйверов Windows 7, Windows 8 и Windows 8.1.

Enterprise WDK (ЕВДК)

Enterprise WDK (евдк) — это набор, в котором крупные организации могут использовать в качестве альтернативы для скачивания и установки пакета SDK и WDK отдельно на каждом компьютере. ЕВДК имеет среду сборки командной строки, основанную на файлах и не зависящую от компьютера, поэтому после создания структуры файлов среды ее можно распространить для непосредственного использования, например с помощью программного обеспечения для управления версиями или путем сжатия содержимого и распаковки на других компьютерах. он содержит необходимые элементы для создания драйверов WDM (WDM), драйверов вдф и классических приложений Windows тестирования.

Windows символы

Файлы символов упрощают отладку кода. самый простой способ получить Windows символы — использовать сервер символов майкрософт. если вы предпочитаете скачать весь набор символов для конкретной версии Windows, скачайте пакет символов.

Windows Комплект оборудования для лаборатории (ХЛК) для Windows 10

комплект Windows Hardware Lab kit (хлк) для Windows 10 — это набор средств для тестирования и оценки, позволяющий определить, насколько хорошо ваше оборудование взаимодействует с Windows. ХЛК предоставляет инфраструктуру тестирования для ПК. дополнительные сведения об использовании хлк с Windows 10 см. в разделе руководства пользователя по Windows Hardware Lab Kit.

Дополнительное тестовое содержимое ХЛК

Источник

Windows SDK

Windows SDK (10.0.22000) для Windows 11 включает новейшие заголовки, библиотеки, метаданные и средства для создания приложений для Windows. Этот пакет SDK поможет вам создавать приложения универсальной платформы Windows (UWP), а также приложения Win32 для Windows 11 и предыдущих выпусков Windows.

НОВИНКА!Пакет SDK для приложений Windows

Пакет SDK для приложений Windows содержит унифицированный набор API и средств, которые отделены от ОС и предоставляются разработчикам с помощью пакетов NuGet. Эти API и инструменты могут согласованно использоваться любыми настольными приложениями в Windows 11 и ниже, вплоть до Windows 10 версии 1809.

Начало работы

Получить пакет Windows SDK можно двумя способами: установить с этой страницы, щелкнув ссылку для скачивания, или выбрать «Пакет SDK для Windows 11 (10.0.22000)» в дополнительных компонентах установщика Visual Studio 2019.

Перед установкой этого пакета SDK:

Системные требования

Минимальные системные требования этого пакета Windows SDK:

Поддерживаемые операционные системы

(Не все средства поддерживаются в среде операционных систем более ранних версий)

Требования к оборудованию

Дополнительные требования для этого SDK

Для установки пакета в среде Windows 8.1 и операционных систем более ранних версий необходимо сначала установить обновление KB2999226. Чтобы выполнить установку Windows SDK через Центр обновления Windows, перед этим необходимо установить последние рекомендованные обновления и исправления из Центра обновления Майкрософт.

Что нового

Windows SDK для Windows 11 позволяет обновить приложения для последней версии ОС Windows. Узнайте больше о новых возможностях Windows 11.

Сведения о новых API, появившихся в Windows 11, см. в статье Новые API в Windows 11, сборка 22000.

Выполните повторную сборку двоичных файлов Windows 11 в операционной системе ARM с помощью ARM64EC, чтобы любой системный код, загруженный приложениями x64, выполнялся на полной скорости. Воспользуйтесь преимуществами ARM64EC, чтобы постепенно перевести приложение в работу с полной скоростью на базе ARM, даже если у вас есть зависимости или подключаемые модули, которые еще не поддерживают ARM. Ознакомьтесь с объявлением.

Примеры

Примеры приложений для Windows теперь доступны через GitHub. Вы можете просмотреть код на веб-сайте GitHub, клонировать личную копию репозитория из Git или скачать запакованный архив со всеми примерами. Для нас очень важен ваш отзыв. Поэтому при возникновении проблемы или вопроса относительно репозитория без колебаний сообщайте нам. Эти примеры предназначены для запуска на настольном, мобильном и будущих устройствах, которые поддерживают платформу универсальных приложений для Windows (UWP).

Предыдущие версии пакетов SDK

Ранее выпущенные пакеты SDK и эмуляторы, а также сведения об обновлениях см. на странице архивов.

Активация API-интерфейсов

При использовании новых API целесообразно создавать адаптивные приложения, которые смогут правильно выполняться на множестве устройств Windows. Новые функции в адаптивных приложениях активируются, если устройство и версия Windows поддерживают их. В противном случае предоставляются только те возможности, которые доступны в версии обнаруженной платформы. Сведения о реализации см. в статье Адаптивный к версии код.

Заметки о выпуске и известные проблемы

Пакет SDK для Windows 10, версия 2104 Раскрыть заметки

#ifdef __clang__
#pragma clang diagnostic ignored «-Wnonportable-system-include-path»
#endif

Пакет SDK для Windows 10, версия 2004 со служебным обновлением (выпущено 16.12.2020) Развернуть заметки

Предоставить отзыв

Сведения об известных проблемах см. на странице вопросов и ответов по SDK для WinAPI.

Запросы на новые функции для разработчиков можно подавать с помощью приложения Центра отзывов в категории «Платформа разработчиков/API».

Другие ресурсы

Загрузки и инструменты

Получите новейшие выпуски средств разработки Visual Studio и Windows 10.

Архив для пакета SDK

Поиск предыдущих версий Window SDK и других инструментов.

Блог Windows

Подпишитесь на наш блог, чтобы быть в курсе актуальных новостей о пакетах SDK.

Информационный бюллетень о жизненном цикле Windows

Основные даты выхода обновлений для выпусков Windows и окончания поддержки.

Источник

Пакет SDK для приложений Windows

Пакет SDK для приложений Windows — это набор компонентов и инструментов для разработчиков, которые представляют новый этап развития платформы для разработки приложений Windows. Пакет SDK для приложений Windows предоставляет унифицированный набор API-интерфейсов и средств, которые можно единообразно применять для любого классического приложения в операционных системах Windows 11 и более ранних версий, вплоть до Windows 10 версии 1809.

Пакет SDK для приложений Windows ранее носил кодовое имя Project Reunion. В некоторых пакетах SDK, таких как расширение VSIX и пакеты NuGet, пока используется старое кодовое имя, но в ближайших выпусках все эти ресурсы будут названы правильно. В некоторых разделах документации по-прежнему используется имя Project Reunion, так как в них описывается существующий ресурс или более ранний выпуск. Чтобы использовать пакет SDK для приложений для Windows, также необходимо установить Windows SDK.

Начало работы с пакетом SDK для приложений Windows

Пакет SDK для приложений для Windows предоставляет расширения для Visual Studio 2019 и Visual Studio 2022. К этим расширениям относятся шаблоны проектов, настроенные для использования компонентов пакета SDK для приложений для Windows в новых проектах. Кроме того, библиотеки пакета SDK для приложений Windows доступны через пакет NuGet, который можно установить в существующих проектах.

Рекомендации по конкретным версиям пакета Windows App SDK см. в статьях Каналы выпуска и Файлы для загрузки.

Функции пакета SDK для приложений для Windows

В следующей таблице описаны функции разработки, предоставляемые текущими выпусками пакета SDK для приложений для Windows. Дополнительные сведения о каналах выпуска пакета SDK для приложений для Windows, включая сведения о каждой из этих функций, см. в разделе Функции, доступные через канал выпуска.

Преимущества пакета SDK для приложений Windows, которые получат разработчики Windows

Пакет SDK для приложений Windows предоставляет широкий спектр API-интерфейсов Windows с реализациями, не зависящими от ОС, которые предоставляются разработчикам в виде пакетов NuGet. Пакет SDK для приложений Windows не предназначен для замены Windows SDK. Windows SDK будет работать так же, как и раньше, а многие основные компоненты Windows будут совершенствоваться с помощью API, которые предоставляются в выпусках ОС и Windows SDK. Мы рекомендуем разработчикам переходить на пакет SDK для приложений Windows в удобном для себя темпе.

Унифицированное использование API для разных платформ классических приложений

Разработчики, которые хотят создавать классические приложения для Windows, вынуждены выбирать между несколькими платформами и средами приложений. Хотя каждая из таких платформ предоставляет множество функций и API, которые могут использоваться приложениями, созданными с помощью других платформ, некоторые из них могут использовать только определенные платформы. Пакет SDK для приложений Windows унифицирует доступ к API-интерфейсам Windows из классических приложений Windows 11 и Windows 10. Независимо от выбранной вами модели приложений вы получите доступ ко всему набору API-интерфейсов Windows, представленных в пакете SDK для приложений Windows.

Мы планируем и дальше развивать пакет SDK для приложений Windows, устраняя пока сохранившиеся различия между разными моделями приложений. Пакет SDK для приложений Windows будет включать как API WinRT, так и собственные API-интерфейсы C.

Согласованные возможности в разных версиях Windows

Так как API Windows меняются с каждой новой версией ОС, разработчикам нужно использовать такие техники, как адаптивный к версии код, чтобы учесть все различия в версиях, которые может использовать аудитория приложения. Это приводит к усложнению кода и работы разработчиков.

Интерфейсы API пакета SDK для приложений Windows будут работать с ОС Windows 11 и более ранних версий, вплоть до Windows 10 версии 1809. Таким образом, если все ваши клиенты работают с Windows 10 версии 1809 или любой более поздней версии Windows, вы сможете применять новые API-интерфейсы и функции пакета SDK для приложений Windows сразу после их выпуска. При этом вам не придется писать дополнительный код для адаптации к разным версиям.

Увеличенная частота выпусков

Новые API и функции Windows ранее обычно были привязаны к выпускам ОС, которые выходили один или два раза в год. Пакет SDK для приложений Windows будет чаще предоставлять обновления, чтобы вы могли быстрее получать доступ к инновационным возможностям на платформе разработки Windows по мере их появления.

Стратегия развития для разработчиков

Новейшие планы по обновлению пакета SDK для приложений Windows см. в описании стратегии.

Отзывы и участие в разработке

Мы создаем пакет SDK для приложений Windows как проект с открытым кодом. На нашей странице Github вы найдете дополнительную информацию о том, как мы работаем над пакетом SDK для приложений Windows и как вы можете поучаствовать в разработке. Ознакомьтесь с руководством для участников, если вы хотите задать вопрос, начать обсуждение или предложить функцию. Мы стремимся к тому, чтобы пакет SDK для приложений Windows предоставлял разработчикам максимум преимуществ.

Источник

Windows SDK

Windows SDK (10.0.22000) для Windows 11 включает новейшие заголовки, библиотеки, метаданные и средства для создания приложений для Windows. Этот пакет SDK поможет вам создавать приложения универсальной платформы Windows (UWP), а также приложения Win32 для Windows 11 и предыдущих выпусков Windows.

НОВИНКА!Пакет SDK для приложений Windows

Пакет SDK для приложений Windows содержит унифицированный набор API и средств, которые отделены от ОС и предоставляются разработчикам с помощью пакетов NuGet. Эти API и инструменты могут согласованно использоваться любыми настольными приложениями в Windows 11 и ниже, вплоть до Windows 10 версии 1809.

Начало работы

Получить пакет Windows SDK можно двумя способами: установить с этой страницы, щелкнув ссылку для скачивания, или выбрать «Пакет SDK для Windows 11 (10.0.22000)» в дополнительных компонентах установщика Visual Studio 2019.

Перед установкой этого пакета SDK:

Системные требования

Минимальные системные требования этого пакета Windows SDK:

Поддерживаемые операционные системы

(Не все средства поддерживаются в среде операционных систем более ранних версий)

Требования к оборудованию

Дополнительные требования для этого SDK

Для установки пакета в среде Windows 8.1 и операционных систем более ранних версий необходимо сначала установить обновление KB2999226. Чтобы выполнить установку Windows SDK через Центр обновления Windows, перед этим необходимо установить последние рекомендованные обновления и исправления из Центра обновления Майкрософт.

Что нового

Windows SDK для Windows 11 позволяет обновить приложения для последней версии ОС Windows. Узнайте больше о новых возможностях Windows 11.

Сведения о новых API, появившихся в Windows 11, см. в статье Новые API в Windows 11, сборка 22000.

Выполните повторную сборку двоичных файлов Windows 11 в операционной системе ARM с помощью ARM64EC, чтобы любой системный код, загруженный приложениями x64, выполнялся на полной скорости. Воспользуйтесь преимуществами ARM64EC, чтобы постепенно перевести приложение в работу с полной скоростью на базе ARM, даже если у вас есть зависимости или подключаемые модули, которые еще не поддерживают ARM. Ознакомьтесь с объявлением.

Примеры

Примеры приложений для Windows теперь доступны через GitHub. Вы можете просмотреть код на веб-сайте GitHub, клонировать личную копию репозитория из Git или скачать запакованный архив со всеми примерами. Для нас очень важен ваш отзыв. Поэтому при возникновении проблемы или вопроса относительно репозитория без колебаний сообщайте нам. Эти примеры предназначены для запуска на настольном, мобильном и будущих устройствах, которые поддерживают платформу универсальных приложений для Windows (UWP).

Предыдущие версии пакетов SDK

Ранее выпущенные пакеты SDK и эмуляторы, а также сведения об обновлениях см. на странице архивов.

Активация API-интерфейсов

При использовании новых API целесообразно создавать адаптивные приложения, которые смогут правильно выполняться на множестве устройств Windows. Новые функции в адаптивных приложениях активируются, если устройство и версия Windows поддерживают их. В противном случае предоставляются только те возможности, которые доступны в версии обнаруженной платформы. Сведения о реализации см. в статье Адаптивный к версии код.

Заметки о выпуске и известные проблемы

Пакет SDK для Windows 10, версия 2104 Раскрыть заметки

#ifdef __clang__
#pragma clang diagnostic ignored «-Wnonportable-system-include-path»
#endif

Пакет SDK для Windows 10, версия 2004 со служебным обновлением (выпущено 16.12.2020) Развернуть заметки

Предоставить отзыв

Сведения об известных проблемах см. на странице вопросов и ответов по SDK для WinAPI.

Запросы на новые функции для разработчиков можно подавать с помощью приложения Центра отзывов в категории «Платформа разработчиков/API».

Другие ресурсы

Загрузки и инструменты

Получите новейшие выпуски средств разработки Visual Studio и Windows 10.

Архив для пакета SDK

Поиск предыдущих версий Window SDK и других инструментов.

Блог Windows

Подпишитесь на наш блог, чтобы быть в курсе актуальных новостей о пакетах SDK.

Информационный бюллетень о жизненном цикле Windows

Основные даты выхода обновлений для выпусков Windows и окончания поддержки.

Источник

Практическое руководство. Использование пакета SDK Windows 10 в классическом приложении Windows

при создании проекта классического Windows рабочего стола в Visual Studio он по умолчанию обращается к пакету SDK для Windows 10. Visual Studio устанавливает версию этого пакета SDK при установке рабочей нагрузки C++ для настольных систем. пакет SDK для Windows 10 поддерживает написание кода для Windows 7 SP1 и более поздних версий. дополнительные сведения о нацеливании на конкретные версии Windows см. в разделе использование Windows заголовков и обновление WINVER и _WIN32_WINNT.

при обновлении существующего проекта можно выбрать один из вариантов: можно использовать целевой Windows SDK, указанный в проекте. также можно перенацелить проект для использования пакета SDK для Windows 10. с помощью пакета SDK для Windows 10 вы получаете преимущества поддержки новейших операционных систем и языковых стандартов.

использование правильного Windows SDK для проекта

начиная с Visual Studio 2015, библиотека среды выполнения C (CRT) была разделена на две части: одна часть, ucrtbase, содержит стандартные функции crt C и Microsoft, которые можно использовать в универсальных Windows приложениях. эта библиотека теперь называется универсальной библиотекой CRT или UCRT и перешла в пакет SDK Windows 10. UCRT содержит множество новых функций, таких как функции C99, которые необходимы для поддержки новейших стандартов языка C++. Другая часть исходной CRT — vcruntime. Он содержит поддержку, запуск и код завершения среды выполнения C, а также все остальное, которые не были отправлены в UCRT. Библиотека vcruntime устанавливается вместе с компилятором и набором средств C++ в Visual Studio. Дополнительные сведения см. в разделе функции библиотеки CRT.

UCRT теперь является системным компонентом, установленным на каждой версии Windows 10. Он также доступен как устанавливаемый компонент для всех более ранних поддерживаемых версий Windows. вы можете использовать Windows 10 SDK для всех поддерживаемых версий Windows. полный список поддерживаемых операционных систем см. в разделе Windows 10 SDK.

чтобы перенацелить проекты на использование пакета SDK для Windows 10 при обновлении версии проекта до Visual Studio 2015, выполните следующие действия.

Изменение целевой платформы для пакета SDK для Windows 10

retargetingwindowssdk2

8,1 в этом контексте относится к пакету SDK для Windows 8.1.

Если этот шаг выполнен успешно, в окне вывода появится следующее сообщение.

Retargeting End: 1 completed, 0 failed, 0 skipped

Откройте диалоговое окно Свойства проекта. в разделе свойства конфигурации > общие обратите внимание на значения Windows версия целевой платформы. Изменение значения на данном этапе действует аналогично данной процедуре. Дополнительные сведения см. в разделе Страница свойств «Общие» (проект).

retargetingwindowssdk3

retargetingwindowssdk4

нажмите кнопку макросы >> и прокрутите список макросов до Windows SDK макросов, чтобы просмотреть все новые значения.

retargetingwindowssdk5

При необходимости повторите процедуру перенаправления для других проектов решений и перестройте решение.

Изменение целевой платформы для пакета SDK для Windows 8.1

Откройте контекстное меню узла проекта в обозреватель решений и выберите пункт перенацелить проекты. (в более ранних версиях Visual Studio выберите изменить целевую версию пакета SDK.)

В раскрывающемся списке Версия целевой платформы выберите 8,1.

Источник

Время прочтения
6 мин

Просмотры 6.9K

Только что пришла в голову мысль — нужно найти какое-то хобби. Иначе с катушек можно съехать. А поскольку я весьма бесполезный человек, ничего кроме как тыкать кнопки не умеющий, хобби будет такое: не реже раза в неделю устраивать стрим с написанием игрушки. После стрима запись публикуется на Хабре. (Можно попробовать постить на Хабр прям лайв, но это сильно сложней).

Написание очень feedback driven — если кому-то нужны пояснения, то я могу пояснить как смогу. Если есть предложения — постараюсь учитывать. На хабре читаются все комментарии до последнего, в других местах — как получится.

Первый блин комом вот здесь:

Под катом — тезисное описание для тех, кому справедливо влом тратить на просмотр полтора часа.

Направляющие идеи

Первый интересный аспект в том, что хочется написать всё без хрюмворков. Как обычный джавист делает? Возникла проблема — фигачишь в зависимости хрюмворк, и он тебе решает вопрос. Цена этому — из-за подобного свинства проект превращается в свинарник, и никто не может в точности определить, что же происходит. Хочется попробовать написать без этой свинофермы, чистенько и аккуратно. Возможно, это невозможно — пожалуйста, сообщите в комментариях.

Второй аспет. Я всю жизнь кодил на Java и PHP. Был опыт разработки игрушек, но только серверной части с ответом по сети, и ни разу — настоящего десктопного приложения на C++. Поэтому, по сути это будет шоу уродов — человек не разбирающийся в вопросе попробует как-то своими словами описать, что происходит.

Нет, никакого практического значения всё это не имеет. Это чтобы не съехать с катушек, и чтобы мотивировать взрослых бородатых дяденек тоже взяться за клавиатуру и запилить какую-нибудь игрушку.

Рутина наносит удар в пятак

К сожалению, программирование никогда не начинается с легкого и приятного развлечения. Вначале происходит период болезненного копания в настройках среды и IDE.

Первое что я понял относительно Visual Studio — это отличный инструмент для профессионала, но на новичка он производит очень фрустрирующее впечатление. После Eclipse и IntelliJ IDEA всё, знаете ли, какое-то неестественное, сиреневенький бесперспективняк с переподвыподвертом. Дело не в коем случае не в VS, дело во мне :-)

И с плагинами постоянно какая-то беда.

Поэтому волевым решением отказываемся от Вижуалки и смотрим, что ещё есть. Vim, Emacs и прочие редакторы, не понимающие структуры исходника — отправляются лесом. Первая же попытка использовать Eclipse провалилась, поэтому инструментом был выбран CLion.

Проблема с CLion в том, что он не всё ещё не умеет полноценно работать с компилятором Visual Studio. Если попробовать сделать что-нибудь в нём, то будет вот такое:

Конечно, тут бы в тред набежать гошникам и начать кричать надрывным голосом, что отладочных принтов хватит всех. Но мы их слушать, конечно не станем.

Поэтому нужно то, что CLion умеет хорошо, и это MinGW.

Выбираем MinGW

Есть большая таблица версий.

И по ней видно, что имеет смысл смотреть только на Cygwin и Msys2. Msys2 какой-то странноватый — у него мало коммитеров, пакеты лежат на личном гитхабе одного из авторов. С другой стороны, он действительно клёвый — там свежий компилятор и куча пакетов. Это имеет решающее значение.

Установка заключается в прокликивании next-next-ok, и потом многократном выполнении команды обновления (pacman -Syu, как в Арчлинуксе) с перезапуском терминала Msys2, пока он не скажет, что всё получилось в лучшем виде.

Если просто установить Msys2 по инструкции и попробовать добавить его в CLion, не будет найдено ни одного тулчейна. Его нужно поставить самостоятельно, это делается командой pacman -S mingw-w64-x86_64-toolchain.

После установки этого пакета, CLion запускает helloworld (который генерится автоматически при создании нового проекта) и в нём работает отладка.

Проверка возможности #1: простое окно

Во-первых, хочется понять, запустится ли вообще хоть какое-то десктопное приложение. Всё-таки, это не родной PlatformSDK, а MinGW.

Для этого подойдет незамысловатая прога, рисующая окно с помощью винапи.

И да, с MinGW она запускается. А вот с тулчейном Visual Studio оно сыпет какими-то ошибками, но с ними разбираться я не стал, потому что — а зачем, если у нас уже работает целевая платформа?

Проверка возможности #2: треугольник с шейдером

Понятно, что для написания чего-то жизнеспособного недостаточно выводить пиксели на окне. Это тормозно, неудобно, нет никаких модных штучек. Короче, нам нужен DirectX.

Ключевой вопрос про CLion+MinGW — именно это. Если они не смогут юзать DirectX, то отправляются в помойку.

Для тестирования был нагуглен очень короткий туториал, состоящий всего из двух файлов: в одном весь код на C++, в другом — шейдер. Задача в том, чтобы запинать его работать.

Кроме однофайловости этот туториал очень хорош тем, что там на пальцах рассказывается, как он работает. Возможно, эту статью стоит перевсти на Хабр (напишите в комментариях).

Готовый результат лежит вот здесь GitHub. Здесь опишу, какие проблемы встретились.

Мелочи и мусор

Много L-строк стали просто строками. Можно поудалять буковки L. Во многих местах нужно заменить NULL на 0 чтобы не падало.

Несмотря на то, что использовался set(CMAKE_CXX_STANDARD 17), этом плане ничего интересного не произошло вообще, ничего не развалилось.

Заголовки и либы

Дело, конечно, в том, что этот пример — очень древний, написанный во времена задолго до Windows 10. DirectX теперь не находится в отдельном DirectX SDK как во времена нашей неоднозначной молодости, а засунут прямо в Windows SDK.

Поэтому первое что нужно сделать — запустить установщик Visual Studio и проверить, что установлена свежая версия Windows SDK.

Второй вопрос — в заголовках.

#include <d3d11.h>
#include <d3dx11.h>
#include <d3dx10.h>

Их больше нет, нужно что-то вроде:

#include <d3d9.h>
#include <d3d10.h>
#include <d3d11.h>
#include <dxgi.h>

И потом в CMakeLists добавить поиск до них в конец файла:

set(LIBS d3d9 d3d11 d3dcompiler_43)
target_link_libraries(src ${LIBS})

Отсутствующие API

Раньше была вот такая структура:

typedef struct D3DXCOLOR {
  FLOAT r;
  FLOAT g;
  FLOAT b;
  FLOAT a;
} D3DXCOLOR, *LPD3DXCOLOR;

И больше её нет. Впрочем, во всех местах, где она реально была нужна, получилось заменить D3DXCOLOR(0.0f, 0.2f, 0.4f, 1.0f) на {0.0f, 0.2f, 0.4f, 1.0f}.

Проблема интересней оказалась с D3DX11CompileFromFile. Её больше нет!

В статье Living without D3DX её предложили заменить на D3DCompileFromFile.

Но вот проблемка, D3DCompileFromFile у нас тоже почему-то недоступно!

Небольшое расследование показало, что документация Microsoft предлагает воспользоваться очень новой версией API:

А MinGW отправляет нас в прошлое на несколько лет:

Впрочем, в 32-битной версии есть более новый заголовок, но как его присобачить к 64-битам я не разобрался. 32 бита на, наверное, на фиг не сдались.

С одной стороны, это очень печально, потому что предвещает гемор в отношениях с MinGW в дальнейшем. Интересно, кто мантейнеры всех этих дел.

С другой стороны, если взять отсутствующую D3DCompile и присутствующую D3DCompileFromFile:

HRESULT WINAPI D3DCompileFromFile(
  in      LPCWSTR pFileName,
  in_opt  const D3D_SHADER_MACRO pDefines,
  in_opt  ID3DInclude pInclude,
  in      LPCSTR pEntrypoint,
  in      LPCSTR pTarget,
  in      UINT Flags1,
  in      UINT Flags2,
  out     ID3DBlob ppCode,
  out_opt ID3DBlob ppErrorMsgs
);

HRESULT WINAPI D3DCompile(
  in      LPCVOID pSrcData,
  in      SIZE_T SrcDataSize,
  in_opt  LPCSTR pSourceName,
  in_opt  const D3D_SHADER_MACRO pDefines,
  in_opt  ID3DInclude pInclude,
  in_opt  LPCSTR pEntrypoint,
  in      LPCSTR pTarget,
  in      UINT Flags1,
  in      UINT Flags2,
  out     ID3DBlob ppCode,
  out_opt ID3DBlob ppErrorMsgs
);

то окажется, что там разница только в следующем:

  in      LPCWSTR pFileName,

против

  in      LPCVOID pSrcData,
  in      SIZE_T SrcDataSize,
  in_opt  LPCSTR pSourceName,

К сожалению, я не знаю C++, поэтому наговнокодил как умел: просто добавил вычитывание файла и редирект этих данных в D3DCompile.

void WINAPI D3DCompileFromFile(const char *filename,
                       const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
                       const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages) {

    SIZE_T data_size;
    char* buffer;

    ifstream infile;
    infile.open(filename, ios::binary);
    infile.seekg(0, ios::end);
    data_size = infile.tellg();
    infile.seekg(0, ios::beg);
    buffer = new char[data_size];
    infile.read(buffer, data_size);
    infile.close();

    D3DCompile(buffer, data_size,filename,
                           defines, include,entrypoint,
                           target, sflags, eflags, shader, error_messages);
}

Единственное важное различие между почившим в тьме веков D3DX11CompileFromFile и нашим самопальным D3DCompileFromFile — в отсутствии в новом API ID3DX11ThreadPump в качестве параметра. Это что-то для асинхонности, возможно какой-то тредпул? Впрочем, в туториале он и не использовался, там на его месте стоит 0.

Итоги

Связка DirectX + MinGW + Msys2 + CLion является достаточно жизнеспособной, чтобы запилить простую игру. Есть возможность не только использовать базовое винапи, но и рисовать, и даже с шейдерами.

В общем-то, всё. Напоминаю, что нехитрый результат лежит на GitHub.

Пожалуйста, помните, что это не мой код, а модифицированный текст из туториала — впрочем я надеюсь, что такое его использование является честным и целевым. Но тем не менее, именно поэтому там нет никой нормальной лицензии.

Фидбек

Пожалуйста, пишите в комментариях ваши замечания и предложения. Ради этого всё и делается, послушать что вы скажете. Особенно если вы — матёрый игропрограммист, прямо зубр, бизон, и не помещаешься в тред по размерам. Обязательно найдо зайти и что-нибудь написать.

Напоминаю, что я, как и любой дргой блоггер, питаюсь лайками и дизайками. Чем яростней вы будете наяривать стрелку вверх под этим постом, тем более вероятно выйдет следующий пост и стрим.

олег родился в интернете
в почтенной геймерской семье
питался лайками и в гугол
за двойки ставили его

© Александр Раевский

Понравилась статья? Поделить с друзьями:
  • Как установить windows xp professional sp3 на ноутбук
  • Как установить windows phone на андроид смартфон
  • Как установить windows phone на virtualbox
  • Как установить windows mobile на virtualbox
  • Как установить windows mobile вместо андроид