怎样用 vc7 + xpddk 编译驱动程序

1. 将 需要的文件(.h .c .cpp .asm .rc ..)加入到解决方案中
2. 在 解决方案中 右击 工程,调出 属性框,将常规中的配置类型 选成 “生成文件”
3. (再次只给出debug 版本方式,release 版本自己修改)选中 NMKE , 
在 “生产命令行” 填入
md Debug 2>NUL:
cd Debug
nmake -nologo ../Makefile DEBUG=1 

在 “全部重新生产命令行” 填入
rd /s /q Debug 2>NUL:
md Debug 2>NUL:
cd Debug
nmake -nologo ../Makefile DEBUG=1

在“清除命令行”填入
rd /s /q Debug 2>NUL:

在“输入” 填入
Debug/你的驱动名称.sys

4. 编写 makefile 文件(具体的makefile语法请自行查阅)
这里主要分 check 和 free 版本用变量分开写

DDK = D:/WINDDK/2600.1106
OS = wxp
BASENAME = zzz

CC = cl
ASM = ml

all: $(BASENAME).sys

!IFNDEF RELEASE

# debug
DEFINES_D = -D_X86_=1 -Di386=1 -DSTD_CALL -DCONDITION_HANDLING=1 /
-DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 /
-DWINNT=1 -D_WIN32_WINNT=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDBG=1 -D_DEBUG -DDEBUG -DDEVL=1 /
-DFPO=0 -D_DLL=1 -D_IDWBUILD -DRDRDBG -DSRVDBG -DDBG_MESSAGES=1 /
-D_UNICODE -DLITTLE_ENDIAN

CFLAGS_D = $(DEFINES_D) -Zel -Zp8 -Gy -cbstring -Gz -QIfdiv- -QIf -Gi- -Gm- -GX- /
-GR- -GF -FI$(DDK)/inc/$(OS)/warning.h -Zi -Od -Oi -Oy- -W3

LFLAGS_D = -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d /
-INCREMENTAL:YES -FORCE:MULTIPLE -DEBUG -PDB:$(BASENAME).pdb -FULLBUILD /
-IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 -NODEFAULTLIB /
-debug -version:4.00 -osversion:4.00 -debugtype:cv /
-MERGE:.rdata=.text -MAP:$(BASENAME).map -driver -align:0x20 /
-subsystem:native,4.00 -base:0x10000 -entry:DriverEntry@8

!ELSE

# Release
...
!ENDIF

CRYPTOOBJ = xx.obj

LINK_D = link $(LFLAGS_D) -nologo -out:$(BASENAME).sys -machine:IX86 /
 $(DDK)/lib/$(OS)/i386/ntoskrnl.lib /
 $(DDK)/lib/$(OS)/i386/hal.lib

CFLAGS = $(CFLAGS_D) -nologo -DNT4_DRIVER -I$(DDK)/inc/$(OS) -I$(DDK)/inc/ddk/$(OS) -I$(DDK)/inc/ddk/wdm/$(OS)

{..}.c{}.obj :
 $(CC) -c $(CFLAGS) -I../../yyy -I../../xxx $<

{../../xxx}.c{}.obj :
 $(CC) -c $(CFLAGS) -I../../yyy -I../../xxx $<

{../../xxx}.c{}.obj :
 $(CC) -c $(CFLAGS) -I../../yyy -I../../xxx $<

{../../yyy}.asm{}.obj :
 $(ASM) $(ASMFLAGS) $<
 
{..}.rc{}.res :
 rc -r -D_X86_ -fo driver.res $<

!IFNDEF RELEASE
ASMFLAGS = /coff /Zm /c /Cp /Zi /D_DEBUG
!ELSE
ASMFLAGS = /coff /Zm /c /Cp /DNDEBUG
!ENDIF


...

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值