VC6.0 +WDK 開發驅動的環境配置

    原來開發驅動的環境是VC6+DDK+DriverStudio3.2,當時配置的時候就花了好一陣功夫,也沒有徹底搞清楚。現在要重裝了,決定改用WDK來開發,但環境的配置又搞的我頭疼,不太喜歡命令行方式的編譯,還是想借助VC6來開發驅動。

         在安裝完VC6和WDK以後,就開始進行環境的配置了,可結果是弄了半個上午,還是搞不定。去網上找信息,關於WDK的,多是使用VS2005或VS2008的,有的要藉助於DriverStudio之類的,按上面的方法來配置自己的工程看來不行。於是就參考了別人寫的VC6+DDK編譯驅動的文章,終於成了,不過有些地方還是有點不一樣的。在這裏把不一樣的地方寫下來,以供大家參考。
(1)第一步:
           打開VC建立一個Win32 Application工程,然後選擇An empty Project。
(2)第二步:
            隨便找一個驅動程序,主要是.C,.h及rc資源文件,加入第一步建立的工程
(3)第三步:
           設置VC編譯驅動的環境,這纔是重點。
           打開VC的Tool->Options->Directories裏設置Include,Lib,及Exectuable File。這裏說明下爲什麼要設置這三個東西:Include目錄中,主要是供我們開發使用的頭文件.h文件;Lib目錄,爲我們驅動所要調用的一些鏈接庫文件;Exectuable File,這個很重要,它裏面包含了我們編譯驅動所使用的Cl.exe及連接link.exe文件,VC正是通過這兩個文件來生成最後的驅動.sys文件(如果編譯出現cl.exe錯誤,說明是這裏的路徑設置的不正確,我先前在這裏走了彎路了,所以提醒下)。
          設置Include路徑:
           E:\WINDDK\6001.18002\INC
           E:\WINDDK\6001.18002\INC\CRT
          E:\WINDDK\6001.18002\INC\DDK
          E:\WINDDK\6001.18002\INC\API   (這裏可能有些不需要,也可能少了,根據自己的情況在INC目錄下繼續添加就OK了)
         
           設置LIB路徑:
            E:\WINDDK\6001.18002\LIB
            E:\WINDDK\6001.18002\LIB\CRT\I386
            E:\WINDDK\6001.18002\LIB\WNET\I386
            設置Executable Files:
            E:\WINDDK\6001.18002\bin\x86\x86
           (這裏要注意,一定要在bin\x86目錄下,確切的找到Cl.exe文件,然後添加它所在的目錄,DDK與WDK這個文件所在的路徑並不是一樣的,上面的是我所安裝的WDK中cl.exe所在的路徑,這裏要根據不同情況選擇正確的路徑)
(4)第四步:
           這裏要設置工程的屬性:
            打開VC->Project菜單,找到C/C++選項卡,在Preprocesser definitions裏輸入如下字符串:
           Release下輸入:
           _X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG
           Debug下輸入:
          _X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG
          在Code Generation裏的Calling convention用_STDCALL
         Debug版有個特殊編譯選項 /GZ (注意是大寫的,小寫的不要刪!)刪掉,否則有鏈接錯誤,chkesp鏈接 不上什麼的。
(5)第五步:
         設置link選項卡,將輸出文件名改爲sys擴展名,
          在General的Objcet/Library modules,填寫驅動調用的幾個lib:
           ntoskrnl.lib hal.lib usbd.lib wmilib.lib。

          然後進入Output在Entry-point symbol:填DriverEntry
          下面就是往Project Options手動增加一些鏈接選項,複製如下進去:
          /machine:IX86 /driver /subsystem:native /SECTION:INIT,d /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221
          刪除如下選項:
         /subsystem:windows
         /machine代表目標機器類型,/driver代表驅動,/subsystem:native 也是代表驅動。
(這裏,我在配置的時候,只是將/subsystem:windows改爲:/subsystem:native沒有再進行其它設置,也可成功生成驅動文件,至於有沒有問題,暫時不知道)
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章