Не удается открыть файл include: 'ntddk.h'
Я пытаюсь войти в развитие драйвера (очередь "не делай этого" )
Я смотрел эту страницу msdn и после установки WDK (драйвер Windows Kit) 10 Я все еще не могу скомпилировать пример, который они используют на этой странице.
Я рассмотрел другие вопросы SO, но я не могу найти установленный каталог WDK. Когда я пытаюсь запустить настройку, меня приветствует следующее:
![WDK Setup image]()
Как я могу это решить?
Ответы
Ответ 1
Вам нужно добавить путь заголовков WDK к вашим каталогам include vcxproj:
Свойства vcxproj → C/С++ → Общие → Дополнительные каталоги Include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\
P.S.: Убедитесь, что вы установили SDK 10 вместе с WDK 10.
P.P.S: Без SDK вы получите ошибку Cannot open include file: 'ntdef.h'
Ответ 2
Правило большого пальца
Когда вам нужно создать последнюю (или конкретную) версию WDK, убедитесь, что установлена соответствующая версия Win SDK.
Предполагаемая причина
В процессе отладки проблемы оказалось, что (из-за версии SDK) процесс сборки устанавливал $(LastTargetPlatformVersion) в 10.0.10586. Хотя установленный WDK предоставляет необходимые версии файлов сборки только для версии 10.0.14393. Похоже, это несколько задуманное поведение.
Мой случай
В моем случае это было связано с различными версиями Win SDK и WDK.
У меня был SDK 10.0.10586 и WDK 10.0.14393.
Установка SDK 10.0.14393 решила проблему для меня.
Боковое примечание
Win SDK устанавливается с компоновкой по умолчанию VS2015, но по какой-то причине он не получает обновления в процессе обновления VS.
Ответ 3
Существует макрос $ (DDK_INC_PATH), который можно добавить для включения каталогов вашего проекта (свойства vcxproj → VC++ Каталоги → Включить каталоги)
Ответ 4
Решил ее, выбрав другую "версию Windows SDK" в Visual Studio в разделе "Свойства проекта" → "Общие".
В каталоге C:\Program Files (x86)\Windows Kits\10\Include
меня есть 5 папок с Windows SDK. В новейшей версии (10.0.17763.0) не было подпапки km
. После изменения версии Windows SDK с 10.0.17763.0
на 10.0.17134.0
в Visual Studio был найден заголовок ntddk.h
.