配置vc6编译驱动程序

来源:互联网 发布:淘宝清仓海报 编辑:程序博客网 时间:2024/05/16 12:02

       之前写驱动,都是辛辛苦苦用build工具编译,不胜其烦。今天无意中看到一片文章,讲到如何配置vc的工程属性,使得可以编译驱动。想想也很自然,build不过是个外包,最终是调用编译和链接命令。只是这些命令的参数需要认真研究而已。现在好了,既然有人写了,何不尝试一下。折腾了1个小时。总算是能够成功编译了,就当做一个模板,以后改改源文件就可以了,VC里面配合Visual Assist写代码还是挺舒服的,哈哈哈哈大笑。
      2k的DDK装在d:/ntddk,因为有些选项我都是直接给出了完整路径,另外有些选项是随意的,比如程序版本,可以随自己喜好。可能有未发现的错误,不过已经能够编译最简单的驱动就是一大进步。先建立一个工程,添加源文件和头文件。然后修改Option,完整的Project Options如下:
Checked:
c/c++ :/nologo /Gz /MLd /W3 /WX /GX /Z7 /Od /Gy /I "d:/ntddk/inc/ddk" /I "d:/ntddk/inc" /I "d:/ntddk/inc/ddk/wdm" /D "RDRDBG" /D "SRVDBG" /D FPO=0 /D WIN32=100 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D _DLL=1 /D _X86_=1 /D $(CPU)=1 /D NTVERSION='WDM' /D WINVER=0x500 /D NTDEBUG=ntsd /D DBG=1 /D "WIN32_LEAN_AND_MEAN" /FAcs /Fa"Checked/" /Fo"Checked/" /Fd"Checked/" /FD /QIfdiv /QIf /QI0f /c

link:wdm.lib ntoskrnl.lib kernel32.lib msvcrt.lib
/nologo /base:"0x10000" /version:4.29 /stack:0x40000,0x1000 /entry:"DriverEntry" /incremental:no
/pdb:"Checked/DriverTmp.pdb" /map:"Checked/DriverTmp.map" /debug /debugtype:both /machine:IX86
/nodefaultlib /out:"Checked/DriverTmp.sys" /pdbtype:sept /libpath:"D:/NTDDK/libchk/i386"
/libpath:"d:/ntddk/lib/win_me" /driver /IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096,4210
/MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /SECTION:INIT /FULLBUILD /RELEASE
/FORCE:MULTIPLE /OPT:REF  /OPT:ICF /align:0x20 /osversion:5.00 /subsystem:native

Free:
c/c++ :/nologo /Gz /MLd /W3 /WX /GX /Ox /Ot /Oa /Ow /Og /Oi /Os /Op /Gy /I "d:/ntddk/inc/ddk" /I "d:/ntddk/inc" /I "d:/ntddk/inc/ddk/wdm" /D "WIN32" /D "_RELEASE" /D "_WINDOWS" /D "_MBCS" /D "RDRDBG" /D "SRVDBG" /D FPO=0 /D WIN32=100 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D _DLL=1 /D _X86_=1 /D $(CPU)=1 /D NTVERSION='WDM' /D WINVER=0x500 /D NTDEBUG=ntsdnodebug /D DBG=0 /D "WIN32_LEAN_AND_MEAN" /FAcs /Fa"Free/" /Fo"Free/" /Fd"Free/" /FD /QIfdiv /QIf /QI0f /c

Link:wdm.lib ntoskrnl.lib kernel32.lib msvcrt.lib
/nologo /base:"0x10000" /version:4.29 /stack:0x40000,0x1000 /entry:"DriverEntry" /incremental:no
/pdb:"Free/DriverTmp.pdb" /map:"Free/DriverTmp.map" /machine:IX86 /nodefaultlib /out:"Free/DriverTmp.sys"
/pdbtype:sept /libpath:"D:/NTDDK/libfre/i386" /libpath:"d:/ntddk/lib/win_me" /driver
/IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096,4210 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text
/SECTION:INIT /FULLBUILD /RELEASE /FORCE:MULTIPLE /OPT:REF /OPT:ICF /align:0x20
/osversion:5.00 /subsystem:native