[首发于cnblogs,转载请注明:作者:byeyear/告别年代 Email: [email protected]]
用惯了IDE,赶脚WDK7的build过程真心操蛋啊~~~
下面就来看看如何整合Visual C++和WDK7吧。原创作品。
以Visual C++ 2008 Express和WDK7600为例。
1. 启动Visual C++ 2008,新建一个Makefile project
Project name我们填上toaster,我们后面将把WDK的toaster例子文件加进来
Solution Name我们填上wdk_sample。
2. 在后续的对话框中,全部内容使用默认值。
3. 将wdk中的toaster例子文件复制到工程目录(wdk_sample\toaster),并添加到project中:
makefile,makefile.inc,sources和toaster.c:在WinDDK\7600.16385.1\src\general\toaster\kmdf\func\simple
toaster.h:在WinDDK\7600.16385.1\src\general\toaster\kmdf\func\shared
driver.h和public.h:在WinDDK\7600.16385.1\src\general\toaster\kmdf\inc
4. 修改一下toaster.h文件中的包含文件路径:
将driver.h和public.h两行修改为:
5. 打开Configuration Manager:
6. 新建一个configuration:
Name:xp_x86_free
Copy settings from: Debug
单击确定。
7. 在Active solution configuration下拉列表中选择Edit,将Debug和Release配置删除:
8. 编辑项目属性:
右侧单击Build Commd Line编辑框右侧的小方块,弹出编辑框:
展开Macro:
好,现在到关键时刻了:
9. “开始”菜单 –> Windows Driver Kit –> WDK 7600 –> Build Enviroment –> Windows XP –> x86 free build:
在这个菜单项上单击右键,选择“属性”,选择“快捷方式”选项卡:
选中“目标”编辑框中的内容,按Ctrl+C或单击右键选“复制”,将该编辑框内的内容复制到剪贴板。
10. 回到步骤8中Build Command Line编辑框,输入“call ”(call后有个空格),然后按Ctrl+V将剪贴板中的内容复制进来,并删除从C:\WINDOWS开始到cmd.exe /k之间的内容:
删除之前是这样:
删除后:
11. 按回车换行,输入:“cd /D ”(D后面有个空格)
12. 在macro展开列表中选择InputDir,单击Insert按钮:
13. 现在Command Line编辑框应该像这样:
14. 继续在上述编辑框中起一新行,输入:build
15. 单击OK,回到项目属性对话框。继续编辑Rebuild All Command Line:
除了最后一行输入build /c外,其余和上一步中的command line一致,你可以直接复制过来修改:
16. 现在可以回到VS主界面,Build一下试试:
1> |
看一下工程目录内,多了个objfre_wxp_x86目录。点开看看:
啊哈,大功告成了。
17. 你可以用同样的方法把其他Build Enviroment都加到Configuration Manager里去。比如我又加了一个xp_x86_checked。
可以用同样的方法加入WDK所支持的所有Build Enviroment。
18. 该方法目前的缺点:
加入新文件时,需要:1. 编辑sources文件 2. 将文件加入Solution Explorer;
只能在工程文件内部Go Declaration,没有办法Go Declaration到DDK/WDF的结构或函数
19. 若您有更好的方法,或认为有改进余地,欢迎留言或Email我。