vc6中集成驱动编译环境的配置方法

来源:互联网 发布:文明6 mac 卡顿 编辑:程序博客网 时间:2024/05/21 10:32

本方法是来源于自《windows防火墙与网络封包截获技术》 ,我只是厚颜无耻的加了点东西贴在这里,一是为不知道如何搭建环境的朋友行个方便,二是在这里做一个备忘录

编译驱动当然可以使用命令行来编译,但是如果能够在vc6里面就集成驱动的编译将会使一件非常痛快的事情,毕竟vc的IDE环境对源代码的管理、编写支持的非常好,况且还有可爱的vc助手,将会使我们的工作事半功倍,不过要记住的vc只是为我们建立了一个代码编辑以及编译的外壳,而其核心还是使用的ddk提供的编译工具来进行编译的,下面进入环境搭建

1. 安装DDK(有人问,重装系统之后是否可以还要再次安装DDK?回答是:如果ddk安装目录下的文件还在,那么不用再次安装了)

2. 设置环境变量
   添加一个用户环境变量DDKROOT,他的值应该是你所安装DDK的根目录。(比如在安装DDK时安装到了d:/WINDDK/2600,那么 DDKROOT的值应该为d:/WINDDK/2600)
  如何设置环境变量: 右键单击'我的电脑'->高级->环境变量->新建 (2000下的设置环境变量的地方)

3. 建立makefile工程
   在vc6中,新建一个'Makefile'工程,在DEBUG configuration 中的Command line中填入build.bat checked,在RELEASE configuration的Command line中填入build.bat free

4. 向工程里面添加编译的批处理文件 ‘Bulid.bat’,其内容为
@echo off
rem -----------------------------------------------------------
rem usage:
rem    build.bat [<checked | free>]
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

:start
set DDKOPT=%1
if "%DDKOPT%" == "" set DDKOPT=free

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
%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
pause


以上为Build.bat的内容,简单解读一下流程,首先删除以前的编译的pdb以及sys文件,然后获得编译的选项,是release或者debug,然后使用ddk自带的setenv.bat来设置环境变量,接着进入关键部分,调用build.exe进行编译,最后将文件进行复制移动等等收尾工作看到我们上一个步骤中设置的环境变量DDKROOT发挥作用了吧!!好好的解读build.bat有助于快速的发现环境配置的错误

5. 添加‘MAKEFILE’文件
   标准格式,不用更改,内容如下
#
# DO NOT EDIT THIS FILE!!!  Edit ./sources. if you want to add a new source
# file to this component.  This file merely indirects to the real make file
# that is shared by all the driver components of the Windows NT DDK
#

!INCLUDE $(NTMAKEENV)/makefile.def

6. 添加‘Sources’文件

TARGETNAME=psloadedmodulelist
TARGETPATH=obj
TARGETTYPE=DRIVER

#    $(DDK_LIB_PATH)/ndis.lib 

MSC_WARNING_LEVEL=-W3 -WX

MSC_OPTIMIZATION=/Odi

INCLUDES=

C_DEFINES= $(C_DEFINES) -DUNICODE -D_UNICODE
C_DEFINES=$(C_DEFINES) -DNDIS50_MINIPORT=1
C_DEFINES=$(C_DEFINES) -DNDIS50=1

SOURCES  = psloadedmodulelist.c 

注意: TARGETNAME=psloadedmodulelist中的psloadedmodulelist表示最后生成的驱动名称
最后一句SOURCES=psloadedmodulelist.c的psloadedmodulelist.c代表需要编译的源文件,如果有多个源文件,那么都需要在这里列举出来
这两个地方是可以根据大家的需要进行更改

7. 添加源文件和头文件,然后就可以和编译一般的应用程序一样在vc6中进行编译了 

原创粉丝点击