本来按照这个来做,能跑通helloworld,可是复杂的驱动就会出错....不知道什么原因,后来就直接用命令行来编译的。
---------------------------------------------------------------------------------------------------------------------
这个学期和老师做prp(Participate in Research Program),项目的主要内容是:以一个视频采集卡为数据源开发一个虚拟的摄像头驱动程序(至少我是这样理解的)。借了本《Windows驱动开发技术详解》之后。问题就一个一个来了,头一件就是怎么配置开发环境。从网上看了很多的文章,也照着配置了很多天,就是不行。最后在综合了多个人的精华再加上自己一个一个实验后,得到了一个可行的开发环境搭建方法,也不知道以后会不会出现错误,还是先发了吧,希望广大同仁们指正。
前提:vs2010,wdk7已经安装
1. 新建 “解决配置管理器” 名称可为:Driver
2. 建立空项目,添加cpp文件。
3. 打开 视图->其他视图->属性管理器
4. 右击 Driver|Win32选择属性;
配置:
常规:
目标文件扩展名:.sys
VC++目录 (我的wdk安装目录为:C:/WinDDK/)
可执行文件目录:C:/WinDDK/7600.16385.1/bin/x86;$(ExecutablePath)
包含目录:
c:/WinDDK/7600.16385.1/inc;$(VCInstallDir)include;$(VCInstallDir)atlmfc/include;$(WindowsSdkDir)/include;$(WindowsSdkDir)/common/include;$(FrameworkSDKDir)include;c:/WinDDK/7600.16385.1/inc/api;c:/WinDDK/7600.16385.1/inc/ddk;$(IncludePath)
库目录:
C:/WinDDK/7600.16385.1/lib/win7/i386;$(LibraryPath)
链接器:
常规
输出文件:$(OutDir)/$(ProjectName).sys
输入
附属依赖项:
ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIBCMT.LIB;%(AdditionalDependencies)
忽略所有默认库: 是 (/NODEFAULTLIB)
清单文件
生成清单:否 (/MANIFEST:NO)
启动用户账户控制:否 (/MANIFESTUAC:NO)
调试
生成调试信息:是 (/DEBUG)
生成映射文件:是 (/MAP)
映射文件名:$(TargetDir)$(TargetName).map
系统
子系统:控制台 (/SUBSYSTEM:CONSOLE)
堆栈保留大小:4194304
堆栈提交大小:4096
驱动程序:驱动程序 (/Driver)
高级
入口点:DriverEntry
无入口点:否
设置校验和:是 (/RELEASE)
基质:0x10000
随机基质:删除,不填写
数据执行保护:删除不填写
配置完之后我 的是可以运行的,不知道以后会不会出问题....