正文

VS 2005 下配置Windows 驱动开发环境心得2010-01-28 16:55:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/miaowei/50618.html

分享到:

所谓万事开头难,自己参照《windows驱动开发技术详解》、在网上收集一些资料,终于在VS2005成功配置开发环境。
网上大多讲述的是 VC6.0 还有就是利用 ddkwizard 插件配置环境,VC6.0的配置跟VS2005还是有很大不同的,又因为是初学者觉得用ddkwizard 帮助我们做了很多工作,不利于学习。所以自己一步步在VS2005配置。在这里列出仅供参考:

              预备工作:
1、安装了DDK(呵呵,说句废话)。目录名字最好不要带空格;
2、在VS2005中选择  “生成”|“配置管理器”   ---在活动解决方案配置中 新建一个方案名(不要Debug、Release);
3、选择 ”工具“|”选项“菜单  选择”项目和解决方案“ 选项卡,选择“VC++目录”选项卡   在”显示以下内容的目录“下拉菜单中选择”包含文件“菜单 添加”"C:\WinDDK\5112\inc\crt", "C:\WinDDK\5112\inc\mfc42", "C:\WinDDK\5112\inc\ddk" 和 "C:\WinDDK\5112\inc\api" , 选择”库文件“菜单添加”C:\WinDDK\5112\lib\wxp\i386"。 不同版本的WDM对应中间的数值会不同,我这里是5112, 你的可能不是这个版本,那么这个数值就不同。

接下来就是工程配置属性项
4、选择”项目“|”属性“ 弹出”属性页“对话框   选择”配置属性“选项卡   选择“C/C++”选项卡  
      4.1、再选择”常规“选项卡
                     1、”调试信息格式“   选择  C7兼容(/Z7) 用Z7模式产生调试信息
                     2、取消显示启动版权标志   选择    是(/nologo)  (默认)
                    3、警告等级  选择    3 级(/W3)
                     4、将警告视为错误    选择   是(/WX)
     4.2、选择”优化“选项卡
                     1、优化    选择   禁用(/Od)
                        其他默认即可
     4.3    选择”预处理器“选项卡
                     1、预处理定义   编辑   WIN32=100;_X86_=1;DBG=1        (WINVER=0x500,是因为你是for 2K的。XP的是0x501,不过不用写,反正不用VC6了,写了反而编译不能通过。)
                       其他默认即可
     4.4    选择”高级“ 选项卡
                       1、调用约定  选择  __stdcall (/Gz)    (这个不用说了驱动函数调用采用标准调用”)


5、 好了,轮到”连接器“ 选项卡了
          5.1  选择”常规“选项卡
                 1、输出文件     编辑     MyDriver_Check/HelloDDK.sys
                2、启用增量链接  选择     否(/INCREMENTAL:NO)
                3、附加库目录  编辑  C:\WinDDK\6001.18002\lib\wxp\i386    (因为等下要用到ntosknl.lib   如果是WDM驱动程序,则需要链接wdm.lib)
                  其他选项默认
          5.2  选择“输入"选项卡
                 1、附加依赖项    编辑  弹出  ”附加依赖项    “  编辑框   编辑   ntoskrnl.lib   复选框”从父级或项目默认设置继承“  的勾  去掉    (免得调用 用户层 lib 文件)
                 2、忽略所有默认库  选择    是(/NODEFAULTLIB)
                    其他选项默认
          5.3  选择”调试“选项卡
                   1、生成调试信息  选择   是(/DEBUG)
                   2、生成程序数据库文件   编辑    MyDriver_Check/HelloDDK.pdb
          5.4   选择”系统“ 选项卡
                   1、子系统    选择   本机(/SUBSYSTEM:NATIVE)
                   2、堆栈保留大小  编辑  40000
                   3、堆栈提交大小  编辑  1000
                   4、驱动程序        选择    驱动程序(/DRIVER)
          5.5   选择”高级“ 选项卡
                  1、入口点   编辑    DriverEntry    (驱动的入口函数地址)
                  2、基址    编辑    0x10000
                  3、目标计算机    MachineX86 (/MACHINE:X86)     (一般是这个)

最后在链接器->命令行 中键入 /SECTION:INIT,D /IGNORE:4078 /safeseh:no。这是防止出现下面这个warning:

LINK : warning LNK4078: 找到多个“INIT”节,它们具有不同的属性(E2000020).

另外一点值得注意的就是: 慎用extern "C"。

因为在配置编译器和链接器的时候。如果调用的是ntddk.h,那么不用加上extern "C".

阅读(4319) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册