使用VC6.0集成开发环境编译设备驱动程序(一)

 开发Windows驱动程序DDK软件包默认的编译方法是使用build工具,这需要程序员编写脚本文件描述一个工程。有时,程序员更喜欢使用VC IDE环境,这样可以方便地对代码进行交叉索引等操作。下面根据“Windows 驱动开发技术详解 ,张帆 史彩成,电子工业出版社”一书中的描述结合本人的使用过程介绍如何使用VC6.0编译设备驱动程序。需要注意的事项,用黑体标注了。

1、用VC新建一个空的Win32 Application,工程名称命名为DriverDev。
2、将源文件Driver.h和Driver.cpp复制到新的工程目录中,并将这两个文件添加到此工程中。
菜单项”Project\Add To Project\Files…”
3、增加新的编译版本
打开菜单项”Build\Configurations”,删除原来版本的其中之一,单击“Add…”按钮,添加”Driver Check Editon”,再删除原来版本中的另一个
4、修改工程属性,单击菜单项“Project\Setting”

选择”General”选项卡。将Intermediate files和Output files改为MyDriver_Check.

选择“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

选择“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

注:Windows驱动程序可以分为两类:NT式驱动程序和WDM驱动程序。NT式驱动程序使用库ntoskrnl.lib。WDM驱动程序使用wdm.lib。因此,如果你开发的是WDM驱动程序,则要把这里的ntoskrnl.lib改为wdm.lib

5、修改VC的lib目录和include目录,单击菜单项”Tools\Options”.
选择“Directories”选项卡。
在”Show directories for ”中选择“Include files”,添加如下目录,并将它们置于上面。
C:\WINDDK\3790.1830\INC\DDK\WDM\W2K
C:\WINDDK\3790.1830\INC\CRT

C:\WINDDK\3790.1830\INC\DDK\W2K
C:\WINDDK\3790.1830\INC\W2K

选择“Directories”选项卡。
在”Show directories for ”中选择“Library files”,添加如下目录,并将它置于上面。
C:\WINDDK\3790.1830\LIB\W2K\I386

6、编译。
在DriverDev\MyDriver_Check目录中生成HelloDDK.sys。

注:如果你使用DDK2003,使用VC6可能会出现如下错误信息,则说明VC6版本低了,这时你可以使用VS.NET2002及以上版本。如果你还想使用VC6,那么在你的机器上再安装VS.NET2002及以上版本,仍然用VC6打开你的项目也可以。我的机器上安装了VC6+VS.NET2005+DDK2003,使用VC6编译DDK2003源程序。

#if _MSC_VER < 1300 //VC 6.0的版本过低

#error Compiler version not supported by Windows DDK
#endif

MS Complier对应的 _MSC_VER的值如下
Compiler version:                      _MSC_VER
------------------------------------------------------------

Visual C++, 32-bit, version 6.0         1200
Visual C++, 32-bit, version 7.0         1300    Visual C++.net (2002)
Visual C++, 32-bit, version 7.1         1310    Visual C++.net 2003
Visual C++, 32-bit, version 8.0         1400    Visual C++.net 2005


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值