如何安装WDK并运行编译一个工程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何安装WDK并运行编译一个工程相关的知识,希望对你有一定的参考价值。

参考技术A 1、安装VS2010,安装WDK7.0(DDK);2、新建VC++->EmptyProject3、打开ConfigurationManager并新建一个名称为“dirver”的SolutionConfiguration并将“dirver”设为ActiveSolutionConfiguration.4、打开View->propertyManager。5、在"dirver"solutionconfiguration上点击右键,选择AddnewpropertySheet。取名为“dirverProperty”.并对他进下以下设置。5.1.C\C++-General-DebugInformationFormat=ProgramDatabase(/Zi)5.2.C\C++-Preprocessor-PreprocessorDefinitions=_X86_[addalsoDBGforDebugconfig]【WIN32;_DEBUG;_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND_MEAN;NT_UP;SRVDBG;DBG;_IDWBUILD;_WIN32_WINNT=0x0400;%(PreprocessorDefinitions)】5.3.C\C++-CodeGeneration-EnableC++Exceptions=No5.4.C\C++-CodeGeneration-BasicRuntimeChecks=Default5.5.C\C++-CodeGeneration-BufferSecurityCheck=No(/GS-)5.6.C\C++-Advanced-CallingConvention=__stdcall(/Gz)5.7.C\C++-Advanced-CompileAs=CompileasCCode(/TC)[ifyouaregoingtouseplainC]5.8.Linker-General-OutputFile=$(OutDir)\$(ProjectName).sys5.9.Linker-General-EnableIncrementalLinking=Default5.10.Linker-Input-AdditionalDependencies=ntoskrnl.libhal.lib$(NOINHERIT)[addhereneededlibsheree.g.ntoskrnl.libhal.lib]【不知道上面是不是笔误,应该为:ntoskrnl.lib;hal.lib;%(AdditionalDependencies)】5.11.Linker-Input-IgnoreAllDefaultLibraries=Yes(/NODEFAULTLIB)5.12.Linker-ManifestFile-GenerateManifest=No5.13.Linker-System-SubSystem=Native(/SUBSYSTEM:NATIVE)5.14.Linker-System-Driver=Driver(/DRIVER)5.15.Linker-Advanced-EntryPoint=DriverEntry5.16.Linker-Advanced-BaseAddress=0x100005.17.Linker-Advanced-RandomizedBaseAddress=Disable(/DYNAMICBASE:NO)【这个也是错误的:应该置空】5.18.Linker-Advanced-DataExecutionPrevention(DEP)=Disable(/NXCOMPAT:NO)【这个也是错误的:应该置空】6.ConfigVC++Directories6.1OpenOpenuppropertymanagerbyclickingonMenuView->PropertyManager.6.2ExpandtheprojectnodeandthentheConfiguration|Platformnodes,youwillsee"Microsoft.cpp..users"fileforeachConfiguration|Platform.Thesearethefilesfortheglobalsettings,similartotheoldtools/Options/VC++Directories.6.3Multi-Select"Microsoft.cpp..users",rightclickandbringupthepropertypagewindow6.4Inthepropertypagewindow,clickon"VC++Directories"(forexample)intheleftpane,addnewpathsforthedirectoriessuchas"IncludeDirectories".separatedbysemicolons(eg:IncludeDirectoriesconfigAs:$(ddkroot)\INC$(ddkroot)\INC\WNET$(ddkroot)\INC\DDK\WNETLibraryDirectoriesconfigAs:$(ddkroot)\LIB\WNET\I386)6.5MakesuretosavethesettingsbeforeshuttingdownVisualStudio.6.6Re-launchVisualStudioandthenewsettingswillbeineffect.6.7Note:Ifyouwouldliketoonlychangethesettingsforoneproject,youcanrightclickontheprojectandbringupthepropertypage.Changethesettingsfor“VC++Directories”,thesesettingswillbepersistedtotheprojectfile.七.OK.Havedone.Nowyoucantestitwithsimplecode,e.g.:#include"ntddk.h"NTSTATUSDriverEntry(PDRIVER_OBJECTDriverObject,PUNICODE_STRINGRegistryPath)returnSTATUS_UNSUCCESSFUL;特别说明:1.VisualStudio2010在智能设备开发方面只支持WindowsPhoneOS7.0。如果你要为WindowsCE5.0和WindowsMobile6.5开发应用程序,请安装VisualStudio2008。2.做驱动开发时,SDK的版本要和WDK的版本一致,即Win7WDK要配Win7SDK,否则会出现编译错误。VS2010里集成了WindowsSDK7.0A。3.如果出现类似如下编译错误,解决方法是:拷贝C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\include\sal.h,然后覆盖掉C:\WinDDK\7600.16385.1\inc\api\sal.h。C:\ProgramFiles\MicrosoftVisualStudio10.0\VC\include\crtdefs.h(550):errorC2143:syntaxerror:missing')'before'const'C:\ProgramFiles\MicrosoftVisualStudio10.0\VC\include\crtdefs.h(550):errorC2143:syntaxerror:missing''before'const'.

VS2012+WDK8.0搭建WDF驱动开发环境

根据目前资料,如果要调试ReactOS源码,有很多工作要做;安装RosBE,下载ReactOS源码,生成VS工程,由源码生成镜像文件,等步骤;然后VS还要搭建驱动开发环境;然后由虚拟机装载运行镜像,VS配置驱动开发相关设置,连接到虚拟机;然后可以在一方发生中断,另一方捕获;就可以调试ReactOS了;

下面来做其中一个步骤,搭建驱动开发环境;

安装WDK 8.0;

这是下载的内容;

安装出现下面提示;这是说,当前安装内容已经是最新的;

因为之前安装过WDK 10.0,还安装了WDK 8.0;但是VS2012是在之后安装的;

如果先安装VS2012,再安装WDK 8.0,则VS2012一级菜单会出现一个Driver菜单;这样就可以做驱动开发;如果VS2012在WDK 8.0之后安装则不行;

Windows Driver Kit 这两个,就是WDK 10和WDK 8;全部卸掉;

开始安装wdk 8.0;

安装完成;

看一下VS2012一级菜单出现了 DRIVER;这就可以做驱动开发了;

新建一个VC++项目看一下,模板里面已经出现了驱动开发的模板;

根据目前资料,VS2012必须安装WDK 8.0,WDK 8.1则和VS2013搭配;

以上是关于如何安装WDK并运行编译一个工程的主要内容,如果未能解决你的问题,请参考以下文章

寒江独钓:Windows内核安全编程的图书目录

如何使用eclipse新建并编译,运行Java程序

VS2017 + WDK7600搭建Windows XP驱动编译环境

Visual Studio 2017 - 无法安装 WDK 扩展

WDK安装失败的问题

Freeline:Gradle工程上如何进行增量编译?