Последняя студия и последний WDK — как подружить? Трюк Неббитта не проходит. При попытке подключить ntddk.h в консольном проекте:
/ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yu"StdAfx.h" /Fp"Debug\test.pch" /Fa"Debug\" /Fo"Debug\" /Fd"Debug\vc100.pdb" /Gd /analyze- /errorReport:queue
пути настроены так, чтобы цеплялись хидеры из WDK, а SDK подавлялись
$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WDK7600)inc\api;$(WDK7600)inc\ddk
stdafx.h
#define _X86_
#define _NT_TARGET_VERSION 0x501
#include <sdkddkver.h>
#define WIN32_NO_STATUS
#include <windows.h>
#undef WIN32_NO_STATUS
namespace NT
{
extern "C"
{
#pragma warning(disable: 4005) // macro redefinition
#include <ntddk.h>
#pragma warning(default: 4005)
}
}
вылезают редефинишны:
:\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''
видимо, надо поставить какие-то дефайны? у кого-нибудь есть какие-то мысли? или готовое решение?
спасибо