VS2012编译已有WDM驱动

驱动不得不升级了,记录一下升级中跳的坑。
环境搭建:
开了虚拟机,在虚拟机中采用VS2012+WDK8。
首先安装VS2012,然后安装WDK8,安装完WDK8会提示要求装wdfcoinstaller
按照提示安装即可,这个是必须安装的。有文章说必须先VS2012再WDK8,我本来就是这个顺序,所以没有遇到啥问题。
代码导入:
这一步按照网上说明进行的。
打开VS2012, file -> open -> convert sources.../dir... 中选择WDM驱动的sources文件,vs2012会自动帮您将sources转为可以编译的vcxproj工程。
注:SOURCES文件是没有后缀的,我的工程里有区分free和debug版本的两个sources文件,任选一个去掉后缀即可。
代码编译:
1.上来就报了一个经典错误: error C2220: 警告被视为错误 - 没有生成“object”文件
这个需要关闭 将警告视为错误属性。
项目 -> 属性 -> 配置属性 -> C/C++ -> 常规 -> 将警告视为错误 选择 否(/WX-)
2.使用了可能未初始化的变量错误,这个我修改了代码
3.cannot open include file 'afxres.h'错误
网上搜了几种解释,觉得都不靠谱,后来看了一个比较合适的。
在 rc 文件内将包含 afxres.h 字样的都删除(有2处),然后在头上将第一处替换为 #include "winres.h" 即可。
我是只把第一处做了替换,后一处没有管,也没再报错。

接下来就编译完成了,但是能不能用还不知道。

猜你喜欢

转载自blog.51cto.com/tianya30/2451021