前幾日在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,保存后,右鍵"以管理員身份運行"。