Не удается открыть файл include: 'ntddk.h'
Я пытаюсь попасть в разработку драйверов (очередь "не делайте этого") Я смотрел на эта страница msdn и после установки WDK (Windows Driver Kit) 10 Я все еще не могу скомпилировать пример, который они используют на этой странице.
Я посмотрел на другие поэтому вопросы но я не могу найти установленный каталог WDK. Когда я пытаюсь запустить программу, я встретил этот:
Как я могу решить это?
3 ответов
вам нужно добавить путь заголовков WDK к каталогам vcxproj include:
свойства vcxproj - > C / C++ - > общие - > дополнительные каталоги включения
C:\Program Files (x86)\Windows Kits\Include.0.14393.0\km\
P.S.: убедитесь, что вы установили SDK 10 вместе с WDK 10.
P. P. S: без SDK вы получите Cannot open include file: 'ntdef.h'
правило
когда вам нужно построить с последней (или определенной) версией WDK, проверьте, что установлена соответствующая версия win SDK.
предполагаемой причины
в процессе отладки проблемы оказалось, что(из-за версии SDK) процесс сборки устанавливал $(LatestTargetPlatformVersion) в 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.
есть макросы $(DDK_INC_PATH), которые можно добавить для включения каталогов вашего проекта (свойства vcxproj -> каталоги VC++ - > включить каталоги)