windows驱动开发技术详解 VC6与DDK搭配使用的设置

在《windows驱动开发技术详解》中作者提供了两种调式内核程序的方法,有两种编译驱动的办法,一种是用DDK环境来编译,需要在源代码所在目录下创建两个文件makefileSources,另一种为vc搭配DDK使用,但不需要写makefile和source文件,

第一种 DDK环境来编译

  写好文件,在开始菜单中选择“Windows XP Checked Build Environment”编译环境,用cd命令进入需要编译的目录,输入”build“命令就可以,编译后的驱动位于objchk_wxp_x86"i386目录下,名为HelloDDK.sys

第二种编译方式是使用VC++进行编译

1,用vc新建工程。在"project"选项卡中,选择win32 Application,选择一个空的工程。
2,将两个源文件Driver.h和Driver.cpp拷贝到工程目录中,并添加到工程中。
3,增加新的编译版本,去掉Debug 和Release 版本,增加一个Win32 Driver Check Edition

4,修改工程属性。选择"Project|Setting",或者直接按下Alt+F7键,弹出"Project Settings"。在对话框中,选择“General”选项卡。将Intermediate files和Output files都改为MyDriver_Check.
5,选择C/C++选项卡,将原有的Project Options 内容全部删除替换成如下内容:
 /nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WINVER=0x500 /D DBG=1 /Fo"MyDriver_Check/" /Fd"MyDriver_Check/" /FD /c

 6,选择Link选项卡,将原有的Project Options 内容全部删除,替换成如下内容
 ntoskrnl.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb" /map:"MyDriver_Check/HelloDDK.map" /debug /machine:I386 /nodefaultlib /out:"MyDriver_Check/HelloDDK.sys" /pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078

 7。修改VC的lib目录和include目录。

在vc中选择"Tools"|"Options",在弹出的对话框中选择“Directories”选项卡。在“Show directories for”下拉菜单中选择“Include files”菜单,添加
D:/WINDDK/3790.1830/INC/W2K
D:/WINDDK/3790.1830/INC/DDK/W2K
并将这两个目录置于最上。

在"Show directories for "下拉菜单中选择“Library files”菜单,添加目录
D:/WINDDK/3790.1830/LIB/W2K/I386
并置于最上端。
8,按照书上所述的步骤做完后编译,会报错如下:
fatal error C1083: Cannot open include file: 'specstrings.h': No such file or directory

原因是include目录设置没完整,加入如下目录既可以正确编译
D:/WINDDK/3790.1830/INC/CRT

 

 当然,以上设置为调式NT式的驱动程序,如果你调式WDM式的驱动程序,vc会提示找不到WDM.H头文件,这是我们应该在

在vc中选择"Tools"|"Options",在弹出的对话框中选择“Directories”选项卡。在“Show directories for”下拉菜单中选择“Include files”菜单,添加
D:/WINDDK/3790.1830/inc/ddk/wdm/w2k

   这时再摁F7,你就会发现程序就正常执行了,终于解决了这个小问题。。

 舒服、、、、、

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值