DDK + VC6 配置

 其实我一直很都想做一下驱动程序开发的,(从一开始就听说Driver的开发不是人做的)……
言归正传,从昨天到现在整整搞了一天半,终于将编译环境配置出来了(winxp DDK sp1+VC6+DriverStudio)
其中重装了一次系统,vc和DDK装了N遍。现在将配置过程总结一下,可让大家少走点弯路。
而且讨厌的是网上的方法都是对的,但是提供代码老是编译不通过。(我baidu了很多资料才将其中的Dug
改过来哦)
软件必备:
    1. windows的DDK(不同版本windows下不同的DDk我用的是xp DDK sp1);
    2.VC6.0 英文版(也可用VS2005但是配置Driverstudio稍有不同);中文版我没试过(不建议使用);
    3.DriverStudio 我用的是3.2;
安装顺序:
    vc ->  ddk ->  DriverStudio
注意事项:
    1.顺序绝对不可以错;
    2.DDK很脆弱,安装目录不允许有空格(这是为什么默认安装在C:/WINDDK/下);
    3.安装路径不允许有汉语字符。
    4.当安装成功后,在建立工程的时候,也不允许出现第2,3项(很BT吧,没办法,光这两项我就试了
          两个小时才搞清楚)。。。。

安装过程:
    这个过程很Easy,就按照默认的配置安装即可,我们不太Care!
使用VC6调试DDK程序:
    这是这项工程的核心部分。
    首先了解一下DDK的编译,这个过程需要两个东东:一是使用安装目录下的./bin/setenv.bat注册环境变量。第二
      使用  ./bin/build.exe 来编译(想弄清其运行机制的,查阅编译器的相关文档)。
     编译过程需要三个文件:一个批处理文件来执行build命令(来自VC IDE调用)一个Makefile文件
      它集成了Build所需的编译器设置,还有一个Source文件,他用来管理需要编译的源文件的。(还有其他作用不再赘述)
    我们要做的就是使用自己写的MakeFile来编译我们的程序。否则你将用命令行来编译!!!
    进入正题:
    利用VC的Wizzard创建makefile工程一路默认即可。
    将成熟代码加到工程中来(就是没有错误的C/C++Code);然后就是设置VC编译器
    我们假设 批处理文件就是 build.bat  
    设置Project的setting 将Debug的 CommandLine:改为
     build.bat chk WorkDir ProPath

    设置 Release 的CommandLine为

   build.bat fre WorkDir ProPath
     说明: chk 是表示将目标文件编译为checked版本(相当于VC的Debug其中有很多调试信息)
            WorkDir 是你当前工程的根目录
            ProPath 是你当前工程的 路径。

       注意:WorkDir和ProPath要根据你工程路径来设置,如果位置变了,相应的也要重新设置。
    按照我提供的 Commandline提供一个build.bat 文件:
    源码如下:
@echo off
rem -----------------------------------------------------------
rem build.bat
rem -----------------------------------------------------------

if exist *.sys del *.sys
if exist ./objchk/i386/*.pdb del ./objchk/i386/*.pdb
if exist ./objfre/i386/*.pdb del ./objfre/i386/*.pdb
if exist ./objchk/i386/*.sys del ./objchk/i386/*.sys
if exist ./objfre/i386/*.sys del ./objfre/i386/*.sys

   set DDKOPT=%1

   if "%DDKOPT%" == "" set DDKOPT=fre
   pushd

   if not exist %DDKROOT%/bin/setenv.bat goto :SetenvNotFound

   call %DDKROOT%/bin/setenv.bat %DDKROOT% %DDKOPT%

   popd
  
   if exist %DDKROOT%/bin/x86/build.exe goto :start

   %DDKROOT%/bin/build.exe

:start

   %2
   cd %3

   %DDKROOT%/bin/x86/build.exe
  
   if "%DDKOPT%" == "checked" goto :CopyChecked
   if "%DDKOPT%" == "chk" goto  :CopyChecked
   if "%DDKOPT%" == "free" goto :CopyFree
   if "%DDKOPT%" == "fre" goto  :CopyFree

   goto :exit

:CopyChecked
   if exist ./objchk/i386/*.sys move ./objchk/i386/*.sys
   goto :exit


:CopyFree
   if exist ./objfre/i386/*.sys move ./objfre/i386/*.sys
   goto :exit

:SetenvNotFound
   echo Can't found Setenv.bat
   goto :exit

:exit
   set DDKOPT=
   del *.log

这个文件是在另外一个从网上下载的配置方法里改来的,原来的不能用,
不怎么解释了,了解命令行的人一看就懂,不了解的解释了也不明白……

在提供一个makefile文件:(意思是使用默认的Makefile,makefile里Include指令嘛)

!INCLUDE $(NTMAKEENV)/makefile.def

然后提供一个source文件:
TARGETNAME=HelloDDK
TARGETTYPE=DRIVER
TARGETPATH=OBJ

INCLUDES=$(BASEDIR)/inc;/
         $(BASEDIR)/inc/ddk;/

SOURCES=Driver.cpp/

略微解释一下:TargetName 编译出来的目标文件
              TargetType一般是 Driver
              TargetPath 为中间目录文件名称
              Includes 提供源程序中头文件路径
              sources为需要编译的C/C++源文件。如果多的话逐一列出。

好了 你可以使用VC编译和DDK联合开发驱动程序了,
而DriverStudio提供了很多Debug时需要实用的软件,我也不太明白。
不过配置不太难。
Gooooooooooooood luck To U!!


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值