1. 程式人生 > >使用VS2015編寫驅動時出現的部分錯誤以及解決方法

使用VS2015編寫驅動時出現的部分錯誤以及解決方法

    前幾日在github上下載了一個Windows驅動的demo,原本想著直接下載下來開啟解決方案就可以用,沒想到一編譯,出現了奇奇怪怪的Error,部分Error網上也沒什麼好的解決辦法,對我這個從未深入玩過VS的人,VS的使用體驗實在是太糟糕了,以後不知道還有沒有機會繼續使用VS,但是還是決定記錄下來踩過的坑。

1、Error C1107 未能找到程式集“platform.winmd”: 請使用 /AI 或通過設定 LIBPATH 環境變數指定程式集搜尋路徑 

通過微軟的錯誤幫助,發現問題出在了LIBPATH環境變數中,並且是using出了問題。

解決辦法:

        ① 解決方案資源管理器右鍵專案,點選屬性。

 

        ②配置屬性--C/C++--其他using指令--編輯,看一下到底是缺了什麼路徑

經過分析發現,在C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcpackages中,資料夾是空的,那麼肯定會報錯了。

出現資料夾為空的情況,是因為這個工程是下載的別人的,VS的安裝位置不一樣,因此只需要新增你安裝VS的路徑下的vcpackages就可以了。

我的VS安裝在E盤,因此只需新增E:\VS2015\VC\vcpackages,然後儲存,再次編譯就可以通過了。

 

2、WindowsApplicationForDrivers10.0未安裝,請安裝WindowsApplicationForDrivers10.0 tools後使用

    出現此問題的原因是未安裝WDK10

解決辦法:

        安裝WDK10即可。

        WDK10:https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk

安裝成功後選擇平臺工具集為WindowsApplicationForDrivers10.0即可。

 

 3、LINK : fatal error LNK1181: 無法開啟輸入檔案“C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\km\x86\cfg_support_v1.lib

        出現這個問題的原因是我們使用的Windows Kit版本是10.0.10240,其中缺少km資料夾

解決辦法:

        進入資料夾C:\Program Files (x86)\Windows Kits\10\include,將高版本的資料夾下的km資料夾拷貝到我們使用的平臺所需要的版本的資料夾

     相似的進入資料夾C:\Program Files (x86)\Windows Kits\10\Lib,執行上邊的一步,再次編譯問題解決。

4、regsvr32命令報錯:模組已載入,但對dllregisterServer的呼叫失敗,錯誤程式碼為0x80070005

    將專案編譯好後生產DLL檔案,需要載入DLL檔案,出現失敗。出現此問題的原因是許可權不足,需要獲取管理員許可權執行regsvr32命令。

 

解決辦法:

        ①  使用管理員身份執行cmd命令列,執行regsvr32命令。

或者

        ②  將執行的regsvr32命令儲存在一個文字檔案中,然後將檔案字尾名改為.bat或者是.cmd,儲存後,右鍵"以管理員身份執行"。