天天看點

Visual Studio2005 Windows XP DDK DriverStudio3.2 安裝的一些說明

搭建開發環境是開發驅動的第一步,這個搭建的過程還是有點小折騰的,在這兒我遇到的問題記下來,免得日後忘記,也希望可以幫到一些人。

其實問題基本都處在DriverStudio3.2的安裝和編譯上。

下面就開始了:

這三個軟體的安裝順序是:VS2005、Windows XP DDK、DriverStudio3.2。這是推薦的安裝順序。

首先,上網找Windows XP DDK安裝程式、DriverStudio3.2安裝程式、DriverStudio3.2的更新檔DSDDKEnv.zip

         更新檔檔案我上傳了,可以在這兒下http://download.csdn.net/source/2896238

預設VS2005已經裝好了,然後裝DDK,DDK就一路預設裝就可以了。

(建議把DDK的所有Example都裝上,不然可能以後編譯時會缺少頭檔案之類問題)

然後裝DriverStudio3.2,也是一路預設安裝就可以了(注:安裝目錄中不要出現空格,原因馬上講到)。

安裝過程中會出現一個錯誤對話框,大概是說DSDDKEnv8.dll failed to register,選Ignore。

出現這個錯誤的原因是:Driver Studio 3.2在與VS2005內建的過程中出錯了,

這個錯誤我們将在DS3.2安裝完成後用更新檔修複。

接下來更新檔修複。

DSDDKEnv.zip解壓,用檔案DSDDKEnv8.dll、DSDDKEnv8UI.dll分别替換掉...../DriverStudio/Common/Bin和DriverStudio/Common/Bin/1033目錄下的同名檔案。

然後在開始菜單的運作中分别輸入以下兩條指令:

regsvr32 -u <安裝目錄>\DriverStudio\Common\Bin\dsddkenv8.dll

regsvr32 <安裝目錄>\DriverStudio\Common\Bin\dsddkenv8.dll 

注:如果<安裝目錄>中有空格,那麼以上兩條指令會執行出錯。

這時打開VS2005,其菜單欄的Tools中出現了DriverStudio子菜單。接下來還有以下幾個工作要做:

1:Tools->DriverStudio->DDK Build Settings設定DDK路徑,即将DDK Root Directory設定為C:/WINDDK/2600(根據自己的安裝路徑修改)

2:生成vdw_wdm.lib,這個庫檔案在以後編譯驅動時是需要的。過程如下:

      首先,用VS2005打開..../DriverStudio/DriverWorks/source/VdwLibs2005.sln;

      将VdwLibs設為Active Project;

      然後右擊VdwLibs->Properties,VdwLibs Property Pages頂部的Configuration和Platform要分别改成Active(WDM Checked)和win32 Active,這個很重要。

               注1:這個一定要改對!!不然生成的vdw_wdm.lib是錯誤的,錯誤的庫會導緻以後編譯驅動時出錯,很煩的。

               注2:檢查VdwLibs Property Pages->Librarian中的Output File是否為$(OutDir)/vdw_wdm.lib,如果不是,就改成這個。

      最後編譯工程(用Tools->DriverStudio->Build Solution),vdw_wdm.lib就生成了。

應該到此就安裝完成了。大家可以用VS2005打開.../DriverStudio/DriverWorks/Examples/wdm中的一個例程,比如hellowdm。然後用菜單欄的Tools->DriverStudio->Build Solution with DDK Build.exe。如果生成正确,即在.../DriverStudio/DriverWorks/Examples/wdm/hellowdm/sys/objchk/i386中出現了HelloWdm.sys,那麼就大功告成了,配置好了。

接下來我們用Tools->DriverWizard生成驅動模闆(具體怎麼生成大家自己研究吧^_^)

驅動工程檔案生成後,同樣用Tools->DriverStudio->Build Solution with DDK Build.exe編譯時,

會出現這個錯誤:1>NMAKE :  U1073: don't know how to make 'C:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib'

出錯原因是:根本就沒有C:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib這個庫檔案,這貌似是DS3.2的bug

解決辦法是:1:在Project的Property pages裡的Link=>Input=>Additional Dependencies項中去掉這個庫

           2:在Project的source檔案中找到這句話,删掉就可以了哦:TARGETLIBS=$(DDK_LIB_PATH)/ntstrsafe.lib $(DDK_LIB_PATH)/csq.lib。

繼續閱讀