網(wǎng)上大多講述的是 VC6.0 還有就是利用 ddkwizard 插件配置環(huán)境,VC6.0的配置跟VS2005還是有很大不同的,又因為是初學(xué)者覺得用 ddkwizard 幫助我們做了很多工作,不利于學(xué)習(xí)。所以自己一步步在VS2005配置。在這里列出僅供參考: 預(yù)備工作: 1、安裝了DDK(呵呵,說句廢話)。目錄名字最好不要帶空格; 2、在VS2005中選擇 “生成”|“配置管理器” ---在活動解決方案配置中 新建一個方案名(不要Debug、Release); 3、選擇 ”工具“|”選項“菜單 選擇”項目和解決方案“ 選項卡,選擇“VC++目錄”選項卡 在”顯示以下內(nèi)容的目錄“下拉菜單中選擇”包含文件“菜單 添加”C:\WinDDK\6001.18002\inc\ddk“和 "C:\WinDDK\6001.18002\inc\api" 選擇”庫文件“菜單添加”C:\WinDDK\6001.18002\lib\wxp\i386“ 接下來就是工程配置屬性項 4、選擇”項目“|”屬性“ 彈出”屬性頁“對話框 選擇”配置 屬性“選項卡 選擇“C/C++”選項卡 4.1、再選擇”常規(guī)“選項卡 1、”調(diào)試信息格式“ 選擇 C7兼容(/Z7) 用Z7模式產(chǎn)生調(diào)試信息 2、取消顯示啟動版權(quán)標(biāo)志 選擇 是(/nologo) (默認(rèn)) 3、警告等級 選擇 3 級(/W3) 4、將警告視為錯誤 選擇 是(/WX) 4.2、選擇”優(yōu)化“選項卡 1、優(yōu)化 選擇 禁用(/Od) 其他默認(rèn)即可 4.3 選擇”預(yù)處理器“選項卡 1、預(yù)處理定義 編輯 WIN32=100;_X86_=1;DBG=1 (WINVER=0x500,是因為你是for 2K的。XP的是0x501,不過不用寫,反正不用VC6了,寫了反而編譯不能通過。) 其他默認(rèn)即可 4.4 選擇”高級“ 選項卡 1、調(diào)用約定 選擇 __stdcall (/Gz) (這個不用說了驅(qū)動函數(shù)調(diào)用采用標(biāo)準(zhǔn)調(diào)用”) 5、 好了,輪到”連接器“ 選項卡了 5.1 選擇”常規(guī)“選項卡 1、輸出文件 編輯 MyDriver_Check/HelloDDK.sys 2、啟用增量鏈接 選擇 否(/INCREMENTAL:NO) 3、附加庫目錄 編輯 C:\WinDDK\6001.18002\lib\wxp\i386 (因為等下要用到ntosknl.lib 如果是WDM驅(qū)動程序,則需要鏈接wdm.lib) 其他選項默認(rèn) 5.2 選擇“輸入"選項卡 1、附加依賴項 編輯 彈出 ”附加依賴項 “ 編輯框 編輯 ntoskrnl.lib 復(fù)選框”從父級或項目默認(rèn)設(shè)置繼承“ 的勾 去掉 (免得 調(diào)用 用戶層 lib 文件) 2、忽略所有默認(rèn)庫 選擇 是(/NODEFAULTLIB) 其他選項默認(rèn) 5.3 選擇”調(diào)試“選項卡 1、生成調(diào)試信息 選擇 是(/DEBUG) 2、生成程序數(shù)據(jù)庫文件 編輯 MyDriver_Check/HelloDDK.pdb 5.4 選擇”系統(tǒng)“ 選項卡 1、子系統(tǒng) 選擇 本機(jī)(/SUBSYSTEM:NATIVE) 2、堆棧保留大小 編輯 40000 3、 堆棧提交大小 編輯 1000 4、驅(qū)動程序 選擇 驅(qū)動程序(/DRIVER) 5.5 選擇”高級“ 選項卡 1、入口點 編輯 DriverEntry (驅(qū)動的入口函數(shù)地址) 2、基址 編輯 0x10000 3、 目標(biāo)計算機(jī) MachineX86 (/MACHINE:X86) (一般是這個) 附:使用的ddk 為:wdk 6001.18002 用得是wxp 鏈接庫 這是 偶今天 從書中還有網(wǎng)上的資料 總結(jié)下來 的 編譯驅(qū)動程序 可以編譯通過 , 希望對初學(xué)者有所幫助、也幫助自己以后有個參考 , 不當(dāng)之處 請指正 |
|