пути настроены так, чтобы цеплялись хидеры из WDK, а SDK подавлялись
$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WDK7600)inc\api;$(WDK7600)inc\ddk
:\winddk\7600.16385.1\inc\ddk\wdm.h(3308): error C2371: 'NT::PSECURITY_QUALITY_OF_SERVICE' : redefinition; different basic types
c:\winddk\7600.16385.1\inc\ddk\wdm.h(87) : see declaration of 'NT::PSECURITY_QUALITY_OF_SERVICE'
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8840): error C2144: syntax error : 'int' should be preceded by ';'
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8840): error C4430: missing type specifier — int assumed. Note: C++ does not support default-int
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8840): error C2143: syntax error : missing ';' before '__stdcall'
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8840): error C2433: 'LARGE_INTEGER' : 'inline' not permitted on data declarations
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8840): error C4430: missing type specifier — int assumed. Note: C++ does not support default-int
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8840): error C2377: 'NT::LARGE_INTEGER' : redefinition; typedef cannot be overloaded with any other symbol
c:\winddk\7600.16385.1\inc\api\ntdef.h(944) : see declaration of 'NT::LARGE_INTEGER'
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8844): error C4430: missing type specifier — int assumed. Note: C++ does not support default-int
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8845): error C2146: syntax error : missing ';' before identifier 'Result'
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8845): error C2065: 'Result' : undeclared identifier
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8847): error C2065: 'Result' : undeclared identifier
c:\winddk\7600.16385.1\inc\ddk\wdm.h(8847): error C2228: left of '.QuadPart' must have class/struct/union
type is ''unknown-type''
видимо, надо поставить какие-то дефайны? у кого-нибудь есть какие-то мысли? или готовое решение?
спасибо
А>Последняя студия и последний WDK — как подружить? Трюк Неббитта не проходит. При попытке подключить ntddk.h в консольном проекте:
ntddk.h нельзя использовать вместе с windows.h
Кстати, почему бы не строить общепринятым и единственным официально рекомендованным методом — самим WDK? А со студией подружить с помощью того же ddkbuild, например?
PS Неббет вообще не самый правильный автор для подражания \ использования.
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[2]: WDK & Visual Studio 2010
От:
Аноним
Дата:
21.09.10 21:41
Оценка:
Здравствуйте, Valery A. Boronin, Вы писали:
А>>Последняя студия и последний WDK — как подружить? Трюк Неббитта не проходит. При попытке подключить ntddk.h в консольном проекте:
VAB>ntddk.h нельзя использовать вместе с windows.h
лошади кушают овёс и сено
VAB>Кстати, почему бы не строить общепринятым и единственным официально рекомендованным методом — самим WDK? А со студией подружить с помощью того же ddkbuild, например?
понятное дело, мне просто нужно сделать несколько нэйтивных вызовов. а я вдруг обнаружил, что хидер, которым я пользовался раньше, не совсем точен. поэтому идеальным вариантом было бы подключить ддк хидеры и вытянуть оттуда структуры и прототипы функций. а так мне придётся либо весь проект преносить на ddk buikd либо использовать две билд системы.
раз уж зашёл разговор, то не могли бы вы коротко сравнить visual ddk и ddkbuild?
VAB>PS Неббет вообще не самый правильный автор для подражания \ использования.
Здравствуйте, Аноним, Вы писали:
А>Последняя студия и последний WDK — как подружить?
используйте makefile project и бат файлы приблизительно такого содержания
rem
rem Dirddk == подправить путь к вашему DDK
rem
set Dirddk=D:\winddk\7600.16385.1
call %Dirddk%\bin\setenv.bat %Dirddk% %1 %2
rem
rem dir == current directory
rem
set dir="%~dp0"
cd /d %dir%
build -ceZ
А>>>Последняя студия и последний WDK — как подружить? Трюк Неббитта не проходит. При попытке подключить ntddk.h в консольном проекте: VAB>>ntddk.h нельзя использовать вместе с windows.h А>лошади кушают овёс и сено
Попробуйте windef.h \ ntdef.h вместо windows.h на старте stdafx.h — поможет собраться?
VAB>>Кстати, почему бы не строить общепринятым и единственным официально рекомендованным методом — самим WDK? А со студией подружить с помощью того же ddkbuild, например? А>понятное дело, мне просто нужно сделать несколько нэйтивных вызовов. а я вдруг обнаружил, что хидер, которым я пользовался раньше, не совсем точен. поэтому идеальным вариантом было бы подключить ддк хидеры и вытянуть оттуда структуры и прототипы функций.
верно, если нужно просто собраться в UM — вырезайте недостающие (убедитесь, что их совсем нет в фолдере <SDK>\inc) определения в свой заголовок. Либо можно разносить код использующий windows.h и ntddk.h по разным единицам трансляции (.cpp файлам).
А>а так мне придётся либо весь проект преносить на ddk buikd либо использовать две билд системы. А>раз уж зашёл разговор, то не могли бы вы коротко сравнить visual ddk и ddkbuild?
к сожалению, Visual DDK не пользовался.
Когда-то давно (во времена Неббета ) тоже сидел на самопально сгенеренных всякими driver wizard & клонированных студийных проектах. А сейчас просто не вижу смысла, т.к. подключение ddkbuild в студию через создание проекта типа makefile (при уже настроенных WDK & ddkbuild) делается за минуту и является официальным способом постройки kernel mode code. Так что 2 build системы тут не нужно — достаточно иметь установленный правильно WDK и пару env variables для корректной работы с ddkbuild. Если речь идет об использовании хеадеров из WDK — все это уже все равно должно быть и на вашей основной build системе установлено, ничего сверх (и тем более еще одну билд систему) тут городить не придется.
Разумеется, здесь мы уже говорим про сборку ядерного кода — а если у Вас проект UM консольный, то см пару вариантов как быть выше, ddkbuild в этом случае не нужен.
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[4]: WDK & Visual Studio 2010
От:
Аноним
Дата:
22.09.10 00:21
Оценка:
Здравствуйте, Valery A. Boronin, Вы писали:
А>>>>Последняя студия и последний WDK — как подружить? Трюк Неббитта не проходит. При попытке подключить ntddk.h в консольном проекте: VAB>>>ntddk.h нельзя использовать вместе с windows.h А>>лошади кушают овёс и сено VAB>Попробуйте windef.h \ ntdef.h вместо windows.h на старте stdafx.h — поможет собраться?
было и windef.h и ntdef.h. что характерно, и windows.h это не из SDK, а из WDK (да-да, в WDK есть windows.h) и всё примерно то-же. дублированные определения есть в WDK, и мне не удалось настроить среду так, чтобы они не мешали друг другу. то есть проблемы не из-за интерференции SDK и WDK.
VAB>>>Кстати, почему бы не строить общепринятым и единственным официально рекомендованным методом — самим WDK? А со студией подружить с помощью того же ddkbuild, например? А>>понятное дело, мне просто нужно сделать несколько нэйтивных вызовов. а я вдруг обнаружил, что хидер, которым я пользовался раньше, не совсем точен. поэтому идеальным вариантом было бы подключить ддк хидеры и вытянуть оттуда структуры и прототипы функций. VAB>верно, если нужно просто собраться в UM — вырезайте недостающие (убедитесь, что их совсем нет в фолдере <SDK>\inc) определения в свой заголовок. Либо можно разносить код использующий windows.h и ntddk.h по разным единицам трансляции (.cpp файлам).
А>>а так мне придётся либо весь проект преносить на ddk buikd либо использовать две билд системы. А>>раз уж зашёл разговор, то не могли бы вы коротко сравнить visual ddk и ddkbuild? VAB>к сожалению, Visual DDK не пользовался.
VAB>Когда-то давно (во времена Неббета ) тоже сидел на самопально сгенеренных всякими driver wizard & клонированных студийных проектах. А сейчас просто не вижу смысла, т.к. подключение ddkbuild в студию через создание проекта типа makefile (при уже настроенных WDK & ddkbuild) делается за минуту и является официальным способом постройки kernel mode code. Так что 2 build системы тут не нужно — достаточно иметь установленный правильно WDK и пару env variables для корректной работы с ddkbuild. Если речь идет об использовании хеадеров из WDK — все это уже все равно должно быть и на вашей основной build системе установлено, ничего сверх (и тем более еще одну билд систему) тут городить не придется.
VAB>Разумеется, здесь мы уже говорим про сборку ядерного кода — а если у Вас проект UM консольный, то см пару вариантов как быть выше, ddkbuild в этом случае не нужен.
вообщем, раз готового рецепта нет, то выберу наиболее простой способ — поправлю определения в ранее используемом хидере.