如果你開發的驅動需要支持Windows XP,就必須使用WDK7600;如果不需要,趕緊安裝最新的VS2019+WDK2004吧。
由於WDK7600編譯使用命令行,沒有集成IDE,使得編碼過程較為痛苦,既沒有代碼提示,又。。好吧,主要就是代碼提示,這也是使用VS集成環境最根本的需求。
關於VS集成WDK7600,網上也有一堆的經驗,大部分通過改工程編譯屬性的方式進行,照着做可能出現這樣那樣的意外,而設置編譯成功了,又心里沒底。所以,本文介紹另一種方法讓WDK7600編譯集成到VS中,應該適用於各種VS版本,本文以VS2017為例介紹。
廢話不說,開始!
0、安裝VS和WDK7600
默認安裝就好了。
1、具體步驟
-
新建一個空的解決方案,如xpDrv1,此時解決方案(sln)應該包含一個默認的工程xpDrv1(proj)
-
在工程上,右鍵打開屬性,平台x86,以Debug為例進行設置,Release的參數設置相同,可以一起設置
-
改“配置類型”為
生成文件
,點擊“應用”,左邊樹形屬性列表會相應改變;
-
點VC++ 目錄,將“包含目錄”內容刪除,粘貼:
C:\WinDDK\7600.16385.1\inc\crt;C:\WinDDK\7600.16385.1\inc\api;C:\WinDDK\7600.16385.1\inc\ddk
,代碼提示起作用就是這一步!。注意,此處根據WDK7600目錄的位置自己做調整。
-
點擊“NMake”,如下圖設置,為了方便復制:
- 預處理定義:在Debug配置中,填入“DBG”,這里是方便瀏覽源碼用,在實際編譯過程中並不起作用
- 生成,對應工程右鍵“生成”:
cmd.exe /c buildCmd.cmd $(Configuration) -build
- 重新生成,對應工程右鍵“重新生成”:
cmd.exe /c buildCmd.cmd $(Configuration) -rebuild
- 清理,對應工程右鍵“清理”:
cmd.exe /c buildCmd.cmd $(Configuration) -clean
-
在工程根目錄新建文件
buildCmd.cmd
,內容如下(根據WDK安裝目錄可自行調整相關內容,下面是默認安裝)
@echo off
set BUILD_TYPE=%~1
shift
set BUILD_ARG=%~1
if "%BUILD_TYPE%" == "Debug" (
set DDK_BUILD_TYPE=chk
) else (
set DDK_BUILD_TYPE=fre
)
if "%BUILD_ARG%"=="-rebuild" (set BUILD_OPTS=/c /Z)
if "%BUILD_ARG%" == "-clean" (
rd /s /q obj%DDK_BUILD_TYPE%_wxp_x86\ 2>NUL:
del /s /q build%DDK_BUILD_TYPE%_wxp_x86.* 2>NUL:
) else (
echo %~dp0
pushd .
call C:\WinDDK\7600.16385.1\bin\setenv.bat C:\WinDDK\7600.16385.1\ %DDK_BUILD_TYPE% x86 WXP no_oacr
popd
build %BUILD_OPTS%
)
-
工程根目錄添加
sources
和makefile
兩個文件,可以從WDK7600 sample中隨便拷貝兩個過來 -
添加源文件,例如
xpDrv1.c
,寫點代碼試試,你會發現——代碼提示有了~ -
對sources進行相應修改,工程上右鍵“生成”試試,你會發現——可以生成~
-
工程上右鍵“重新生成”試試,嗯
-
工程上右鍵“清理”試試,嗯嗯
這里,只介紹了x86平台的設置,因為Windows XP都是32位,64位的參照此也很容易設置
3、導出模板
-
點擊菜單中“項目”,“導出模板”,彈出對話框,選默認“項目模板”,下一步,下圖所示,完成就好了
-
新建項目,可以發現,有了xpDrv1的模板(下圖,是我之前使用xpDrv工程導出的模板),選中創建。
-
你會發現,文件還是原來xpDrv1的文件,只需要把源文件
xpDrv1.c
替換一下,sources
改一下,就是新的工程了