- Что такое Windows Kits и как они работают?
- Решение
- Kits and tools overview
- ADK for Windows 10
- Learn about the ADK tools
- Microsoft Visual StudioВ 2017
- Standalone Windows SDK for WindowsВ 10
- WDK 10
- Enterprise WDK (EWDK)
- Windows symbols
- Windows Hardware Lab Kit (HLK) for WindowsВ 10
- HLK supplemental test content
- Компилятор Visual Studio матерится при инициализации GDI+
- Windows kits 10 include
- Лучший отвечающий
- Вопрос
- Ответы
- Все ответы
Что такое Windows Kits и как они работают?
В старые времена при разработке проекта C ++ для Windows в Visual Studio ваша версия Visual Studio имела бы собственную версию библиотек C и C ++, а ваш проект ссылался на конкретную версию Windows SDK, чтобы получить доступ к заголовкам для доступа. на платформу Win32. Если у вас было установлено несколько версий Windows SDK, существовала сложная система, включающая переменные среды, которая позволяла вам выбрать, какую версию Windows SDK Visual Studio будет использовать по умолчанию.
Это было не здорово, и чтобы заставить его работать должным образом, нужно было немного покопаться, но это было просто работа.
Я только что перешел с VS2012 на VS2015, и мне кажется, что то, чем была заменена эта система, либо полностью сломано, либо я просто не понимаю этого.
Обновление простого консольного приложения VS2012 C ++, которое включает conio.h до VS2015, без ошибок. Зачем? conio.h больше не находится в библиотеках Visual Studio C / C ++ и вместо этого теперь живет в Windows Kit 10, обновление проекта не соответствует используемому SDK (как и следовало ожидать).
Создавая новое приложение Hello World C ++ в VS2015, проект C ++ включает каталоги, унаследованные от $ (VC_IncludePath) и $ (WindowsSDK_IncludePath). $ (WindowsSDK_IncludePath) извлекает заголовки из C: \ Program Files (x86) \ Windows Kits \ 8.1, а $ (VC_IncludePath) извлекает заголовки из C: \ Program Files (x86) \ Windows Kits \ 10.
Таким образом, простые обновления проекта завершаются неудачно, и об этом не сообщается об ошибке. Очистите новые консольные проекты, извлекая заголовки из 2 различных установок Windows Kit, и теперь у меня есть записи для 8.1 и 10 в C: \ Program Files (x86) \ Microsoft SDK и C: \ Program Files (x86) \ Windows Kits. Windows Kit 8.1 содержит заголовки Win32 и WinRt, а Windows Kit 10 содержит заголовки C / C ++.
У меня неправильно настроенная или поврежденная установка, или это беспорядок, как это должно быть?
Если этот беспорядок такой, каким он должен быть, как он должен работать? Я пытался найти в MSDN информацию о Windows Kits, но ничего не нашел, кроме информации о Windows Driver Kit, которая раньше была чем-то совершенно другим, но я не знаю, так ли это до сих пор.
Есть ли какая-то документация, которую я пропустил, которая объясняет обоснование этой конфигурации библиотеки и как она предназначена для использования?
Решение
Сейчас я несколько раз сталкивался с несколькими различными вариантами этой проблемы, с проблемами, решающими как заголовочные файлы, так и зависимости библиотек в проектах, обновленных с VS2012 до VS2015.
Комментарий Ханса в ответ на мой вопрос действительно исправляет проблему для заголовков, но после того, как я столкнулся с той же проблемой для библиотечных зависимостей, у меня есть то, что может быть более простым решением, которое работает и для неудачного разрешения библиотечных зависимостей.
При открытии проекта VS2012 в VS2015 автоматическое обновление не выполняется. Открытие свойств проекта и изменение General -> Platform Toolset на Visual Studio 2015 (v140), скорее всего, воспроизведет либо вариант ошибки разрешения заголовка, описанный в моем исходном вопросе, либо другую ошибку разрешения зависимостей библиотеки.
Я нашел самый простой способ исправить это, открыть свойства проекта и перейти в каталоги VC ++ -> Включить каталоги. Среди любых путей, которые вы, возможно, добавили в свой проект самостоятельно, вы, вероятно, найдете $ (VCInstallDir) \ include; $ (VCInstallDir \ atlmfc \ include; $ (WindowsSDK_IncludePath)
Щелкните путь, чтобы отобразить раскрывающийся список, и нажмите кнопку «Изменить». Откроется диалоговое окно с тремя разделами сверху вниз, явно определенными путями, оцененными путями и унаследованными путями. В самом низу находится флажок «Наследовать от родительского или проекта по умолчанию», который я всегда находил изначально непроверенным.
Из явно определенных путей включения удалите записи $ (VCInstallDir) \ include; $ (VCInstallDir \ atlmfc \ include; $ (WindowsSDK_IncludePath), описанные выше, и выберите параметр «Наследовать от родителя или по умолчанию проекта». Это должно разрешить любую зависимость файла заголовка проблемы.
Если у вас также есть проблемы со ссылками на библиотеку, сделайте то же самое с записями в каталоге библиотеки, отредактируйте настройки, удалите явные записи платформы и выберите «Наследовать от родительского или проекта по умолчанию». (Это может быть хорошей идеей, даже если вы не видите ошибок компоновщика, в противном случае вы можете использовать опцию компилятора набора инструментов платформы для VS2015 при подключении к библиотекам для VS2012).
Я не знаю, почему это облажалось для меня, когда я не сталкивался с кем-то, кто сталкивался с подобными проблемами, у меня не было проблем с обновлением решений Visual Studio.
Я также не выяснил, почему некоторые версии Windows Kits теперь содержат либо заголовки платформы Windows, либо заголовки библиотеки C ++, когда ранее SDK всегда содержал заголовки платформы, в то время как заголовки C ++ всегда были частью или установкой Visual Studio. Похоже, что подобное изменение должно иметь где-то блог разработчика или какую-то другую документацию. Но пока это работает, мне все равно.
Kits and tools overview
These kits and tools are available for use with WindowsВ 10 for desktop editions (Home, Pro, Enterprise, and Education) and WindowsВ 10 Mobile for development and manufacturing.
Learn about known issues and workarounds for this release in our WinHEC forums.
ADK for Windows 10
Download the Windows ADK to install tools and documentation for OEMs and ODMs to customize Windows 10 images, assess the quality and performance of systems or components, and to deploy Windows operating systems to new computers. The Windows ADK includes Windows Configuration Designer, the Windows Assessment Toolkit, the Windows Performance Toolkit, and several new and improved deployment tools that can help you automate a large-scale deployment of Windows 10. For more information, see What’s new in kits and tools.
Learn about the ADK tools
The topics below provide instructions on using the tools included in the Windows 10 ADK:
Microsoft Visual StudioВ 2017
Start by downloading Visual StudioВ 2017 and Microsoft Visual Studio Tools for WindowsВ 10. Used together, Microsoft Visual Studio, Visual Studio Tools for WindowsВ 10, standalone Windows Software Development Kit (SDK) for WindowsВ 10, and Windows Driver Kit (WDK) 10 provide an integrated development environment for creating efficient, high-quality drivers for devices running WindowsВ 10.
Standalone Windows SDK for WindowsВ 10
Windows SDK for WindowsВ 10 contains headers, libraries, and tools you can use when you create apps that run on Windows operating systems. You can use the Windows SDK for WindowsВ 10, along with your chosen development environment, to write apps for WindowsВ 10 for desktop editions and WindowsВ 10 Mobile.
WDK 10
WDK 10 contains the tools to build, test, debug, and deploy drivers for WindowsВ 10. WDK 10 unifies support for mobile and desktop devices, Universal Windows drivers, and, with Visual Studio, provides a unified test experience with reliable deployment and debug provisioning that includes WinDbg. You can run many basic certification tests in the integrated environment. The WDK 10 includes templates for several technologies and driver models, including Windows Driver Frameworks (WDF), Universal Serial Bus (USB), print, networking, and file system filters. WDK 10 also supports WindowsВ 7, WindowsВ 8, and WindowsВ 8.1 driver development.
For more information about driver development for WindowsВ 10, see What’s new in Universal Windows driver development and What’s new in kits and tools.
Enterprise WDK (EWDK)
The Enterprise WDK (EWDK) is a kit that large organizations can use as an alternative to downloading and installing the SDK and WDK individually on each computer. The EWDK has a command-line build environment that is based on files and is not computer-dependent, so after the environment file structure has been created, it can be distributed for direct use, such as through version control software or by zipping the contents and unzipping on other computers. It contains the necessary elements to build Windows Driver Model (WDM) drivers, WDF drivers, and classic Windows test applications.
Windows symbols
Symbol files make it easier to debug your code. The easiest way to get Windows symbols is to use the Microsoft Symbol Server. If you prefer to download the entire set of symbols for a particular version of Windows, download a symbol package.
Windows Hardware Lab Kit (HLK) for WindowsВ 10
The Windows Hardware Lab Kit (HLK) for WindowsВ 10 is an all-purpose test and measurement kit to help you determine how well your hardware interacts with Windows. The HLK provides a test infrastructure for PCs. For more information on the using the HLK with WindowsВ 10, see Windows Hardware Lab Kit User’s Guide.
HLK supplemental test content
Some tests, like graphics and multimedia tests, require additional files for testing. You can find this content in the Windows HLK supplemental media test content section on the Download the Windows HLK, HCK, or Logo Kit page.
Компилятор Visual Studio матерится при инициализации GDI+
Всем здравия! Схожу с ума. Проблема такая: Visual Studio 2017 (версия 15.5.7). Создаем проект мастером классических приложений (тип — Windows-приложение, галок никаких не стоит). Компилируем — запускается нормально. Добавляем стандартную инициализацию GDI+:
в соответствующие места проекта, компилируем — получаем кучу ошибок в окне вывода и error C1003 — остановка компиляции (количество ошибок превышает 100).
Вот сам CPP проекта:
Компилятор (Visual C++ 6.0) в плохой совместимости с Windows 7. Посоветуйте другой компилятор
Здравствуйте! Я недавно начал заниматься С++, но мой компилятор (Visual C++ 6.0) в плохой.
Visual Studio 2010 C Graphic Basics (GDI+)
День добрый, форумчане. Есть одна задача, а именно : «В PictureBox случайно выбираются 2 точки.
Компилятор С++ из MS Visual Studio
Приветствую! Приходится кодить понемногу на разных ЯП, то веб, то систему, поэтому пользуюсь.
Компилятор Visual Studio
Посоветуйте хороший компилятор Visual Studio по таким требования: Одним словом что бы на диске С.
GDlapka, в файле c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h
посмотри, на что именно ругается компилятор. Например, в строке 84 явно какой-то неопределённый тип используется. Надо сделать так, чтобы он стал определённым
Windows kits 10 include
Лучший отвечающий
Вопрос
Скажите, пожалуйста, что делать, если у меня вот такая проблема. Я скачал Windows Kits c https://msdn.microsoft.com/en-us/windows/hardware/gg454513.aspx. Но при этом я не могу откомпилировать драйвер, код которого приведён здесь: http://habrahabr.ru/post/40466/. Проблема в том, что я не могу найти в скаченном пакете заголовочный файл ntddk.h, который нужно включить. А ещё проблема в том, что не найду build environment, с помощью чего компилируется драйвер. Я звонил по телефону 8 495 916 71 71. Там мне посоветовали обратиться на сайт msdn.microsoft.com (поэтому я и зашёл на данный форум), а также на форум https://technet.microsoft.com/ru-ru/.
Сразу уточню, что операционная система у меня Windows 10.
Ответы
Оказывается, я отстал от жизни 🙂
Времена сборки драйверов из командной строки уже прошли. Теперь сборка выполняется исключительно из Visual Studio.
- Visual Studio 2015 Community или выше с поддержкой разработки универсальных приложений Windows и языка C++ (по умолчанию в программе установки ВЫКЛЮЧЕНЫ)
- Windows Driver Kit (WDK) версии 10
После этого в шаблонах VS (для языка С++) появляются новые типы проектов — драйверов и сопутствующих компонентов.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Что касается Visual, моя версия Visual не предлагает такие проекты, как драйверы. У меня установлена Visual Studio Enterprise 2015 версии 14.0.24720.00 Update 1. Также есть у меня WDK версии 10.
Типы проектов появятся после установки WDK. Убедитесь также, что у Вас установлены следующие компоненты VS:
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Все ответы
Лучше спросите у самого человека, который написал данный код на хабре.
Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку «Предложить как ответ» или «Проголосовать за полезное сообщение» Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Сборка драйвера должна производиться из командной строки, которая откроется запуском одного из этих ярлыков.
Ярлыков там много. Какой именно ярлык нужно запустить, чтобы открыть командную строку, из которой «сборка драйвера должна производиться»?
А где взять документацию по WDK? И какие «книги на русском языке, посвященные этому вопросу» Вы могли бы порекомендовать мне?
Ярлыков много, потому что вариантов сборки может быть несколько. Во-первых, целевая платформа (x86, x64, ARM), во-вторых, конфигурация (Release, Debug). У меня сейчас WDK не установлен, поэтому точно назвать не могу. Если перечислите названия ярлыков и укажете свою систему и разрядность — скажу точно.
Документация либо ставится вместе с WDK, либо интегрируется в документацию Visual Studio. В крайнем случае есть MSDN Library в Интернете.
Пару книг назову завтра, когда доберусь до рабочего места.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Целевая платформа — 64-разрядная ОС Windows 10. Конфигурация Debug.
Вы ответили только на второй мой вопрос. Как насчет названий ярлыков? И о какой конфигурации Вы пишете? У Вас разве установлена отладочная версия Windows?
- Солдатов В.П. Программирование драйверов Windows — хорошая книга для новичка в разработке драйверов
- П. Орвик, Г. Смит. Windows Driver Foundation: разработка драйверов — книга подробно описывает относительно новую модель Microsoft для построения драйвера в современных версиях Windows
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Спасибо за книги. Я имею в виду конфигурацию, которую я хотел бы получить при компиляции драйвера. Я хотел бы его откомпилировать в Debug-версии. Я пользуюсь Notebook’ом Lenovo с установленной Windows 10 x64. А вот установлена ли у меня отладочная версия Windows или нет, не знаю. Ярлыков в Windows Kits много в разных подпапках. Всё перечислить крайне сложно. Проще переслать Вам скришноты меню «Пуск», где перечислены ярлыки из папки «Windows Kits». Я хотел было прислать Вам скриншоты. Но у меня не получается вставить в текст сообщения изображения.
я смогу Вам помочь со вставкой вашего скриншота.
- Изменено Иван4500 22 января 2016 г. 21:31 Небольшая правка
- Изменено Жук MVP, Moderator 23 января 2016 г. 3:02 дополнение
Воспользуйтесь разделом Q9 справки, для загрузки ваших скриншотов, скопируйте и вручную введите адрес в своё сообщение.
О верификации аккаунта, внимательно изучите аналогичный вопрос
Да, я Жук, три пары лапок и фасеточные глаза :))
- Изменено Жук MVP, Moderator 23 января 2016 г. 2:59
Оказывается, я отстал от жизни 🙂
Времена сборки драйверов из командной строки уже прошли. Теперь сборка выполняется исключительно из Visual Studio.
- Visual Studio 2015 Community или выше с поддержкой разработки универсальных приложений Windows и языка C++ (по умолчанию в программе установки ВЫКЛЮЧЕНЫ)
- Windows Driver Kit (WDK) версии 10
После этого в шаблонах VS (для языка С++) появляются новые типы проектов — драйверов и сопутствующих компонентов.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Насчёт скриншотов, всё равно не получается. Возникает сообщение, где говорится, что мои сообщения не могут содержать ссылки и изображения, пока я учётная запись не пройдёт проверку.
Что касается Visual, моя версия Visual не предлагает такие проекты, как драйверы. У меня установлена Visual Studio Enterprise 2015 версии 14.0.24720.00 Update 1. Также есть у меня WDK версии 10.
И так, по порядку. Для того чтобы собрать драйвер из указанного Вами примера, создаем проект при помощи данного шаблона:
Проект создается почти пустым (исходников нет, один только «недоделанный» INF-файл, который нужен для установки драйвера встроенными средствами Windows).
Добавляем новый файл в проект и вводим исходный код Вашего примера:
Добавленные строки требуются для того чтобы компилятор не «ругался» по поводу неиспользуемых параметров.
Далее, для успешной сборки драйвера, требуется скорректировать имеющийся INF-файл:
И, наконец, выбираем требуемую конфигурацию и разрядность драйвера:
Собираем проект и наблюдаем в выходном каталоге файлы драйвера:
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
- Предложено в качестве ответа Maksim Marinov Microsoft contingent staff, Moderator 25 января 2016 г. 12:20
Что касается Visual, моя версия Visual не предлагает такие проекты, как драйверы. У меня установлена Visual Studio Enterprise 2015 версии 14.0.24720.00 Update 1. Также есть у меня WDK версии 10.
Типы проектов появятся после установки WDK. Убедитесь также, что у Вас установлены следующие компоненты VS:
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Спасибо за ответ. Создать проект получилось. Проблема только в том, что Visual не находит файлы, прописанные в include. Подозреваю, что дело здесь вот в чём. Они лежат в папке: C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\km. Видимо, Visual ищет include-файлы где-то в другом месте. Я, конечно, могу явно прописать: #include . Но тогда он находит ошибку в самом файле ntddk.h, та как данный содержит в себе вот что:
#include
#include
#include
#include
#include
#include
Visual не находит эти файлы, хотя они лежат в той же самой папке, то в C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\km.
Поэтому, не собирается драйвер.
Начинается какая-то «сказка про белого бычка» 🙂 Про включаемые файлы WDK я Вам уже говорил еще в самом начале данной темы: вариант включаемого файла выбирается автоматически в соответствии с архитектурой целевой системы драйвера.
Я написал Вам полную инструкцию в картинках, Вы можете ее повторить (без каких-либо изменений)? Если нет, значит есть какая-то ошибка в Ваших действиях.
Приведите, пожалуйста, ПОЛНЫЙ текст окна вывода после запуска сборки драйвера. Именно полный (скопируйте его целиком из окна вывода и поместите в текст сообщения).
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Я прекрасно понял Вашу инструкцию в картинках. Именно это я и сделал. Вот результат:
1>—— Rebuild All started: Project: TestDriver, Configuration: Debug Win32 ——
1>C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets(181,5): error : An SDK corresponding to WDK version ‘8.1’ was not found. Please install the SDK before building.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
И это при том, что WDK я скачал из Интернета и УСТАНОВИЛ.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Попытка запустить установку с диска не приводит к успеху. Возникает сообщение о том, что установка заблокирована, так как Visual уже установлен. При этом мне не предлагают установку каких-то дополнительных компонентов.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
возникает сообщение: «Подождите, пока завершится удаление или изменение программы». И больше ничего не происходит.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
Мне УДАЛОСЬ установить нужные компоненты. Вот какой теперь результат сборки драйвера: