通过在网上搜索大量的资料,终于把环境搭建起来。对于我这样的驱动新手来说,理应把高手们的东西整理并总结下,方便以后的初学者。

这三个软件的安装顺序没有具体规定,也有高手推荐的顺序,我自己也是重复安装卸载,个人的顺序是:VS2005、DriverStudio3.2、Windows XP DDK。个人觉得后面两个的安装顺序关系不大。

1.VS2005本人安装的英文版,可以在网上下载。

2.DriverStudio3.2 和Windows XP DDK可以百度搜,由于个人的上传上限为60M,不能上传到CSDN,所以大家可以在网上下载。

3.DriverStudio3.2的补丁DSDDKEnv.zip,这个我上传了,可以在我的资源中找到。

安装过程中容易出错的地方说明:

1.在安装DriverStudio3.2,会提示一个ERROR 1904  module的错误,在这里点击ingore就行。

2.另外DriverStudio3.2选择安装路径时不要有空格,本人在刚开始安装时没注意直接选择了D:\program files路径导致后来又重新安装。

3.安装DDK时,会弹出一个下面对话框,要把列表中的全部勾选。

全部安装完成后,接下来就是补丁修复

把下载的DSDDKEnv.zip解压,用文件DSDDKEnv8.dll、DSDDKEnv8UI.dll分别替换掉...../DriverStudio/Common/Bin和DriverStudio/Common/Bin/1033目录下的同名文件。

然后在开始菜单的运行中分别输入以下两条命令:

regsvr32 -u <安装目录>\DriverStudio\Common\Bin\dsddkenv8.dll,

例如本人输入的为:regsvr32 D:\driverstudio\Compuware\DriverStudio\Common\Bin\dsddkenv8.dll

regsvr32 <安装目录>\DriverStudio\Common\Bin\dsddkenv8.dll

注:如果<安装目录>中有空格,那么以上两条命令会执行出错。

这时打开VS2005,其菜单栏的Tools中出现了DriverStudio子菜单。接下来还有以下几个工作要做:

1:Tools->DriverStudio->DDK Build Settings设置DDK路径,即将DDK Root Directory设置为C:/WINDDK/2600(根据自己的安装路径修改)

2:生成vdw_wdm.lib,这个库文件在以后编译驱动时是需要的。过程如下:

首先,用VS2005打开..../DriverStudio/DriverWorks/source/VdwLibs2005.sln;

将VdwLibs设为Active Project;

然后右击VdwLibs->Properties,VdwLibs Property Pages顶部的Configuration和Platform要分别改成Active(WDM Checked)和win32 Active,这个很重要。

注1:这个一定要改对!!不然生成的vdw_wdm.lib是错误的,错误的库会导致以后编译驱动时出错,很烦的。

注2:检查VdwLibs Property Pages->Librarian中的Output File是否为$(OutDir)/vdw_wdm.lib,如果不是,就改成这个。

最后编译工程(用Tools->DriverStudio->Build Solution),vdw_wdm.lib就生成了(请确认\DriverStudio\DriverWorks\lib\i386\checked目录下有生成)。

应该到此就安装完成了。大家可以用VS2005打开.../DriverStudio/DriverWorks/Examples/wdm中的一个例程,比如hellowdm。然后用菜单栏的Tools->DriverStudio->Build Solution with DDK Build.exe。如果生成正确,即在.../DriverStudio/DriverWorks/Examples/wdm/hellowdm/sys/objchk/i386中出现了HelloWdm.sys,那么就大功告成了,配置好了。

接下来我们用Tools->DriverWizard生成驱动模板(具体怎么生成大家自己研究吧^_^)

驱动工程文件生成后,同样用Tools->DriverStudio->Build Solution with DDK Build.exe编译时,

会出现这个错误:1>NMAKE :  U1073: don't know how to make 'C:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib'

出错原因是:根本就没有C:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib这个库文件,这貌似是DS3.2的bug

解决办法是:1:在Project的Property pages里的Link=>Input=>Additional Dependencies项中去掉这个库

2:在Project的source文件中找到这句话,删掉就可以了哦:TARGETLIBS=$(DDK_LIB_PATH)/ntstrsafe.lib $(DDK_LIB_PATH)/csq.lib。

VS2005+WINDDK+Driver Studio 3.2个人总结的更多相关文章

  1. VC/DDK/DriverWorks开发环境配置

    1·前言开发windows内核驱动程序是一个非常具有挑战性的工作,你得忍耐调试过程中操作系统 不断蓝屏.不断崩溃的噩梦,所以强烈建议你采用虚拟机做开发平台,这样即使把整个系统都搞蹦了,大不了从新装过虚 ...

  2. iis浏览网页时提示无法显示 XML 页

    无法显示 XML 页.         使用 样式表无法查看 XML 输入.请更正错误然后单击 刷新按钮,或以后重试.          处理资源 'http://localhost/ 时出错.第 1 ...

  3. VS05 VS08 VS10 工程之间的转换

    VS05 VS08 VS10 工程之间的转换 安装了VS2010后,用它打开以前的VS2005项目或VS2008项目,都会被强制转换为VS2010的项目,给没有装VS2010的电脑带来不能打开高版本项 ...

  4. 9030PCI CAN驱动开发点滴

    1.配置EEPROM. 使用PlxMon打开9030,基本修改Spacex(0,1,2,3), Chip selectx(0,1,2,3), 中断状态INTCSR(0x74), 其他(0x78),详细 ...

  5. 深入linux kernel内核配置选项

    ============================================================================== 深入linux kernel内核配置选项 ...

  6. Visual Studio 2012,创建工程Build Driver,基于纯Source Code.

    拿到一堆纯代码,怎么去Create Project,设置Include路径,lib路径,要不要Pre-compile技术,配置Project之间的依赖关系. SourcesConverter  Bas ...

  7. Atitit. visual studio vs2003 vs2005 vs2008  VS2010 vs2012 vs2015新特性 新功能.doc

    Atitit. visual studio vs2003 vs2005 vs2008  VS2010 vs2012 vs2015新特性 新功能.doc 1.1. Visual Studio2 1.2. ...

  8. Visual Studio快捷键 [VS2008/VS2005]快捷键

    VS系统通用快捷键: 1.自动排版(类似VC6中的Alt+F8) 编辑.格式化选定内容 Ctrl + K,Ctrl + F 根据周围的代码行,正确缩进选定的代码行. 2.注释与去掉注释功能. 编辑.注 ...

  9. Visual Studio解决方案vs2005/vs2008/vs2010/vs2012/vs2013/vs2015版本互相转换工具

    原文:http://blog.csdn.net/xiejiashu/article/details/52397641   本文转自EasyDarwin团队成员Alex的博客:http://blog.c ...

随机推荐

  1. URAL 1297 Palindrome 后缀数组

    D - Palindrome Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  2. C# 微信公众平台开发(4)-- 模版消息

    微信公众平台开发 --发送模版消息 发送模版消息是微信服务号给某个用户发送模版消息,类似于APP的推送通知: 1.添加模版消息 在页面的左上 有一个添加功能插件的 按钮,如题 添加完成后,我们就可以在 ...

  3. 系统变量写在.bash_profile和.bashrc的区别

    今天配置一个代理,正儿八经的把我搞蒙了,不就是export http_porxy=xxx.xxx.xxx.xxx:xxxx 然后重启服务service network restart ,依然连接不了外 ...

  4. Hadoop MultipleOutputs 结果输出到多个文件夹 出现数据不全,部分文件为空

    如题:出现下图中的情况(设置reduceNum=5) 感觉很奇怪,排除了很久,终于发现是一个第二次犯的错误:丢了这句 this.mOutputs.close(); 加上这句,一切恢复正常!

  5. 5.5 Function类型

    说起来ECMAScript中上面最有意思,我想那莫过于函数了,有意思的根源,则在于函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此 ...

  6. Android 使用 intent 实现简单登陆页面

    前言 第一个 Android 程序,应该有些纪念的意义吧~ 主页面布局 给 Button 添加响应函数:android:onClick="login" public void lo ...

  7. 这家伙,搞了好多C#excel的操作,学习了

    http://www.cnblogs.com/peterzb/archive/2009/07/06/1517395.html

  8. A Byte of Python 笔记(10)输入/输出:文件和储存器

    第12章  输入/输出 大多数情况下,我们需要程序与用户交互.从用户得到输入,然后打印一些结果. 可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,可以使用多种多样的 s ...

  9. WINDOWS操作系统中可以允许最大的线程数(线程栈预留1M空间)(56篇Windows博客值得一看)

    WINDOWS操作系统中可以允许最大的线程数 默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来 ...

  10. VS前台设计中的缺陷

    程序的前台界面设计我一般都是Blend中完成的,因为在VS中前台比较难控制.而效果之内的就更不用说了.今天写了个小程序用来启动其他程序的.运行界面如下: 这是尺寸和距离刚刚好的,我们去Blend当中看 ...