• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            旅途

            如果想飛得高,就該把地平線忘掉

            windows驅(qū)動程序開發(fā)環(huán)境配置

            網(wǎng)上有很多關(guān)于驅(qū)動開發(fā)環(huán)境的資料,但大多不全。

            ??? 這里,個人推薦使用vc6.0+ds+windows ddk。

            ??? vc6.0大家再熟悉不過的了,也許你可能喜歡使用vc8.0,也就是.net 2005,它功能強(qiáng)大,調(diào)試方便,但這里還是推薦6.0,因為,ds會在vc6.0開發(fā)環(huán)境中另外增加一個導(dǎo)航工具條,很方便,同時也會增加一個菜單欄。

            ??? vc6.0安裝完畢后,再安裝windows ddk,其安裝包可以在網(wǎng)上搜索到,建議去微軟官方網(wǎng)站下載。具體下載哪個,得根據(jù)你電腦的操作系統(tǒng)來定,我的是windows xp,所以安裝了windows xp ddk。

            ??? 最后,安裝DriverStudio,全稱Compuware DriverStudio ,目前通用版本為3.2。

            ??? 編譯ddk包。進(jìn)入到......\Compuware\DriverStudio目錄下,我們可以看到兩個文件夾,DriverNetworks 和 DriverWorks,里面分別有BuildAllDNW.bat和BuildAllDW.bat,我們在命令行下面分別cd至這兩個目錄,再運(yùn)行這兩 個批處理文件,可以看到提示,提示中說明了運(yùn)行的格式,即:BuildAllDNW(或者BuildAllDW) D:\winddk\2600(ddk的安裝路徑,這個是我機(jī)器上的路徑) WinXP(操作系統(tǒng)版本) x86(我的CPU類型)。回車即可。把兩個批處理類似運(yùn)行,就可以了,如果不編譯,系統(tǒng)會報錯,說沒有.lib靜態(tài)庫文件。

            ??? 開始第一個工程。打開vc6.0,設(shè)置ddk路徑,選擇菜單中或者工具條中的 ddk build settings,把ddk的根目錄root directory設(shè)置好,我的是“D:\WINDDK\2600”。然后選擇菜單或工具條第一項,啟動新建工程向?qū)В徊讲较氯ゾ涂梢粤?。編譯時選擇菜 單或工具條第四項。

            ???

            driverstudio產(chǎn)生的驅(qū)動工程都會要連接ntstrsafe.lib這個庫,但實際上這個庫并不存在,在Project的Settings里的Link項中去掉這個庫,然后在工程中的sources文件里邊,找到下面一行:

            TARGETLIBS=$(DDK_LIB_PATH)\ntstrsafe.lib $(DDK_LIB_PATH)\csq.lib

            直接刪除即可。

            有時候還會提示沒有ntstrsafe.h,#include<ntstrsafe.h>出錯,把它注釋掉即可。

            ?

            上面這個錯誤出現(xiàn)在windows xp操作系統(tǒng)中,我曾經(jīng)幫別人在2003 server中配置開發(fā)環(huán)境,結(jié)果發(fā)現(xiàn),不會存在上述問題,而且可以使用vc6.0的編譯按鈕進(jìn)行編譯,這在windows xp下是不行的。

            調(diào)試。調(diào)試方法很多,我一般都用DbgPrint。

            check和free的區(qū)別。簡單地說,check相當(dāng)于debug,free相當(dāng)于release,前者是調(diào)試版本,后者是發(fā)布版本。你可以使用以下語句實現(xiàn)僅在check版本中輸出調(diào)試語句:

            #if dug

            #define dprintf DbgPrint

            #else

            #define dprintf(x)

            #endif

            然后使用dprintf代替DbgPrint。

            調(diào)試工具。ds自帶的softice,DriverMonitor,等。此外,Dbgview和DriverMonitor類似,可以從網(wǎng)上下載到的。Dbgview和DriverMonitor可以看到DbgPrint的字符串。

            驅(qū)動的加載。這個比較復(fù)雜,有dosname等細(xì)節(jié)。還有動態(tài)和靜態(tài)加載的區(qū)別。動態(tài)加載可以參看FwHookDrv個人防火墻的例子,其中關(guān)鍵部分就是TDriver類,注意dosname。靜態(tài)加載就是注冊為服務(wù)即可,相對比較簡單。

            轉(zhuǎn)換為vc工程。開始--程序--Compuware DriverStudio--develop--DDK sources to vcproj Converter,即可轉(zhuǎn)換,不會使用的多試幾次就會了,什么都說了,就沒有懸念了,呵呵。

            驅(qū)動開發(fā)調(diào)試環(huán)境。建議采用虛擬機(jī)或者雙機(jī)的配置。因為驅(qū)動調(diào)試常常會出現(xiàn)藍(lán)屏等等,所以得雙機(jī)或者虛擬機(jī),免得老是重啟,浪費(fèi)時間和心神。

            posted on 2007-10-27 00:32 旅途 閱讀(3233) 評論(0)  編輯 收藏 引用 所屬分類: 驅(qū)動開發(fā)

            久久99国产乱子伦精品免费| 欧美色综合久久久久久| 模特私拍国产精品久久| 久久综合五月丁香久久激情| 四虎国产精品免费久久5151| 国产精品久久久久影视不卡| 精品少妇人妻av无码久久| 色欲久久久天天天综合网| 少妇精品久久久一区二区三区| 亚洲精品无码久久久影院相关影片 | 久久久久99精品成人片试看| 亚洲欧美国产精品专区久久| 理论片午午伦夜理片久久| 久久久国产打桩机| 久久人人爽人人爽人人AV东京热 | 久久久久无码国产精品不卡| 久久丝袜精品中文字幕| 国产69精品久久久久APP下载| 久久人妻无码中文字幕| 丰满少妇高潮惨叫久久久| 国产L精品国产亚洲区久久| 久久中文精品无码中文字幕| 亚洲Av无码国产情品久久| 久久亚洲中文字幕精品有坂深雪 | 国产精品中文久久久久久久| 亚洲国产精品无码久久一线| 久久精品国产半推半就| 色偷偷88欧美精品久久久| 久久丫精品国产亚洲av| 欧美精品福利视频一区二区三区久久久精品 | 亚洲国产天堂久久久久久| 亚洲AV乱码久久精品蜜桃| 久久久久无码精品国产不卡| 日韩久久久久久中文人妻| 奇米影视7777久久精品人人爽| 久久国产免费观看精品| 青草久久久国产线免观| 久久久久久亚洲AV无码专区| 久久国产影院| 国产精品久久久久久| 91麻豆国产精品91久久久|