使用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,保存后,右键"以管理员身份运行"。

  

猜你喜欢

转载自www.cnblogs.com/Lxk0825/p/10040560.html