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 free4. 向工程裡面添加編譯的批次檔 ‘Bulid.bat’,其內容為@echo offrem -----------------------------------------------------------rem usage:rem build.bat [<checked | free>]rem -----------------------------------------------------------if exist *.sys del *.sysif exist ./objchk/i386/*.pdb del ./objchk/i386/*.pdbif exist ./objfre/i386/*.pdb del ./objfre/i386/*.pdbif exist ./objchk/i386/*.sys del ./objchk/i386/*.sysif exist ./objfre/i386/*.sys del ./objfre/i386/*.sys:startset DDKOPT=%1if "%DDKOPT%" == "" set DDKOPT=freepushd .if not exist %DDKROOT%/bin/setenv.bat goto :SetenvNotFoundcall %DDKROOT%/bin/setenv.bat %DDKROOT% %DDKOPT%popdif exist %DDKROOT%/bin/x86/build.exe goto :start%DDKROOT%/bin/build.exe:start%DDKROOT%/bin/x86/build.exeif "%DDKOPT%" == "checked" goto :CopyCheckedif "%DDKOPT%" == "chk" goto :CopyCheckedif "%DDKOPT%" == "free" goto :CopyFreeif "%DDKOPT%" == "fre" goto :CopyFreegoto :exit:CopyCheckedif exist ./objchk/i386/*.sys move ./objchk/i386/*.sys .goto :exit:CopyFreeif exist ./objfre/i386/*.sys move ./objfre/i386/*.sys .goto :exit:SetenvNotFoundecho Can't found Setenv.bat.goto :exit:exitset DDKOPT=del *.logpause以上為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.def6. 添加‘Sources’檔案TARGETNAME=psloadedmodulelistTARGETPATH=objTARGETTYPE=DRIVER# $(DDK_LIB_PATH)/ndis.lib MSC_WARNING_LEVEL=-W3 -WXMSC_OPTIMIZATION=/OdiINCLUDES=C_DEFINES= $(C_DEFINES) -DUNICODE -D_UNICODEC_DEFINES=$(C_DEFINES) -DNDIS50_MINIPORT=1C_DEFINES=$(C_DEFINES) -DNDIS50=1SOURCES = psloadedmodulelist.c 注意: TARGETNAME=psloadedmodulelist中的psloadedmodulelist表示最後產生的驅動名稱最後一句SOURCES=psloadedmodulelist.c的psloadedmodulelist.c代表需要編譯的源檔案,如果有多個源檔案,那麼都需要在這裡列舉出來這兩個地方是可以根據大家的需要變更7. 添加源檔案和標頭檔,然後就可以和編譯一般的應用程式一樣在vc6中進行編譯了