哎,我都快要成为转帖男了,不过有用的话我觉得还是有必要转一下的。拿来和大家一起分享也是一种快乐!

先说明引自:http://blog.csdn.net/zzqccc/archive/2009/05/05/4151142.aspx

我希望的就是DDK(2600)+VS2005+DRIVER STUDIO(3.2)

这里的driver studio3.2不是破解版本,只能免费使用14天,难道卸载在安装?我争取再去找找破解版本,有了我就贴出来,没有的话只有卸载重安装了!

搭建好windows设备驱动程序的开发环境,终于能在VS2005中编译出第一个测试驱动程序了,现在把安装和编译的过程中遇到的一些细节问题总结一下。

1. WINDD下载的是2600版本,不知道跟xp sp1 DDK和xp sp2 DDK有什么区别,找后面两个版本的DDK下载地址找了好久都没找到,驱运之家有下载,但是要高级会员才能下,要Money。电驴里搜到一个xp sp1DDK的下载链接,但是下不了,在此把我找到的2600版本的下载地址贴出来

ftp://202.113.29.4/ISO/M$/WinDDK/winxp_ddk.rar

2. 注意安装DDK时,建议将例子等全部安装,否则Driver Studio编译时会提示缺少头文件

3. 在VS2005环境下,安装Driver Studio时会有对话框弹出,单击Ignore按钮,解决办法会在后面详细说明;

安装DriverStudio3.2 过程中出现DSDDKEnv8.dll failed to register错误的解决方法
原因:与VS2005集成时会发生此错误。
解决方法,下载补丁:http://download.csdn.net/down/660936/amazingzyx

>Extract it into a temp directory.
>Copy the file DSDDKEnv8.dll into the <INSTALL_DIR>\DriverStudio\Common\Bin directory.
>Select "yes" if prompted to copy over an existing one.
>Copy the file DSDDKEnv8UI.dll into the <INSTALL_DIR>\DriverStudio\Common\Bin\1033 directory. Select "yes" if prompted to copy over an existing one.
>Then unregister the older version
Go to start->run and type "regsvr32 -u " <INSTALL_DIR> \DriverStudio\Common\ Bin\ dsddkenv8.dll"
注意〈INSTALL_DIR〉不能含有空格,否则命令无法执行,笔者曾将DriverStudio安装在C:\Program Files下,总是运行不了,为此郁闷了好久,后经别人提点才解决此问题,但不知其原因,请问有人知道吗?

>Then register the new copy
Go to start->run and type "regsvr32 <INSTALL_DIR>\ DriverStudio\ Common\ Bin\ dsddkenv8.dll"
>DriverStudio menu should now be part of the VisualStudio 2005 menu

如果在vs2005+补丁后生成的解决方案文件.sln无法双击打开工程时可以使用文本编辑器打开.sln文件在第二行加入“# Visual Studio 2005”保存即可,例如:
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aa", "driver\aa.vcproj", "{6A0A9D07-FD4C-4D7C-805D-48D25FB4BE6C}" EndProject

根治方法:
打开\DriverStudio\DriverWizard\Templates目录的WdmDriver.sln.net文件
找到“Microsoft Visual Studio Solution File, Format Version 9.00”这一行,在其后下一行加入“# Visual Studio 2005”保存即可,以后用DriverWizard生成的工程就可以正常双击打开了。

4. 编译中可能遇到的问题(VS2005环境下)
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
这个错误,解决方法如下:
打开project->BaseClasses properties->configuration->C/C++ ->Command Line,增加/wd4430选项。

error LNK2019: unresolved external symbol

error LNK2001: unresolved external symbol

解决:在链接选项中加入 /verbose:lib,就可以看到链接生成执行文件时链接程序所要链接的库的路径。发现所有链接库的路径为DDK所在路径。原来先前用VS写驱动时,在VC++ Directories-->Library Files中加入了驱动库的路径。只要把DDK的路径去掉,让连接器自动寻找默认库进行链接就没有该问题了。

5.     用DriverWizard 新建的工程要在VS2005中编译必须先设置DDK路径,在VS2005菜单栏Toos=>DriverStudio=>DriverStudio=>DDK Build Settings中设置DDK Root Directory

6. 然后还要编译DriverStudio安装目录DriverStudio\DriverWorks\source\VdwLibs2005.sln,以得到vdw_wdm.lib这个库文件。编译时,注意用VC打开VdwLibs2005.sln工程文件后,有两个工程,要先将VdwLibs工程设为当前Active Project,然后右击选择“Property” ,在VdwLibs Property Pages中Configuration要改成“win32 Active(WDM Checked)”

7. 编译驱动时,不要使用VC的"编译",那会产生很多莫名其妙的错误,而应该选择"DriverStudio"-->“Build with BUILD.exe”。
1>NMAKE :  U1073: don't know how to make 'D:\WINDDK\2600\lib\wxp\i386\ntstrsafe.lib'这个错误。
再上网查查。
原来driverstudio产生的驱动工程都会要连接ntstrsafe.lib这个库,但实际上这个库并不存在,在Project的Property pages里的Link=>Input=>Additional Dependencies项中去掉这个库就可以了,还有说DDK2003版本就不存在这个问题,还没试过。
于是去掉之。可是问题依然存在。
狂晕!
最后终于在网上看到一个解决办法
就是将工程中的sources文件里边的:
TARGETLIBS=$(DDK_LIB_PATH)\ntstrsafe.lib $(DDK_LIB_PATH)\csq.lib
直接删除。就行了。

编译后终于成了

转载于:https://www.cnblogs.com/Torres_fans/archive/2009/12/28/1634149.html

VS2005+WINDDK+Driver Studio 3.2编译出第一个测试驱动程序相关推荐

  1. 转-用Driver Studio工具包开发WDM型的USB设备驱动程序

    前文所提及的WDM驱动程序开发方法,笔者都曾尝试过.个人认为用DriverStudio开发工具包来开发USB驱动程序行之有效.其中的Driver Wizard是创建WDM驱动程序框架的一个很好的工具, ...

  2. WDK10编译出最适合申请WHQL认证的驱动

    Windows 10系统已经渐渐被用户熟悉,相对来说越来越多的Windows10硬件推上市场.开发出兼容性和稳定性最好的Windows 10 WHQL驱动是所有硬件厂商愿望.微软为Windows 10 ...

  3. vs2015编译linux源码,使用Visual Studio 2017(VS2017)编译OpenCC 1.0.4 (Open Chinese Convert)源代码...

    摘要:本文介绍了Win7 64位环境下OpenCC(Open Chinese Convert) 1.0.4源码编译全过程,除VS2017外,VS2013以上版本也应该基本同样适用,其他版本的Windo ...

  4. Visual Studio 6.0编译PWLib1.12总结

    Visual Studio 6.0编译PWLib总结 1. 我的环境 Visual Studio 6.0Visual Studio.NET 2010Microsoft Platform SDK for ...

  5. 一套代码编译出ios和android,Hippy: Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)...

    Hippy 跨端开发框架 介绍 Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS.Android 和 Web).Hippy 的设计是面向传统 Web 开 ...

  6. Tesseract OCR——Windows 10 + CMake-GUI + Visual Studio 2019下编译和使用解决方案

    基本概念 Tesseract OCR:Tesseract-OCR 引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一.然而,HP不久便决定放弃OCR业务 ...

  7. 在windows xp下编译出ffmpeg.exe

    找了好多资料,把自己的编译成功过程详细叙述,以避免后来者可以少浪费点时间. 1.安装MSys 到http://sourceforge.net/project/showfiles.php?group_i ...

  8. ubuntu下使用visual studio code来编译和调试C++

    最近想在linux上编译c++代码,自己却一直习惯window上的IDE.以前公司要我写Linux代码的时候,我一般都是用eclipse + CDT,而eclipse这东西吧,我个人感觉因为加载组件太 ...

  9. Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符

    Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符 问题描述: Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单 ...

最新文章

  1. 终于有人把云计算、物联网和大数据讲明白了!
  2. jquery 对框架自适应高度 兼容各种浏览器
  3. 将mysql日期格式转换_如何将日期时间格式转换为mysql日期格式?
  4. python运算符中用来计算整商的是什么_零基础学python,看完这篇文章,你的python基础就差不多了...
  5. 加载oracle属性文件,关于属性文件的详细介绍
  6. 小程序css之圆角边框
  7. 2013页面验证框架来袭。基于独创的vvc思想。还不知道的童鞋赶快围观吧!
  8. IPC生产者与消费者模型加线程
  9. 【转载】Objective-C runtime 消息机制
  10. Python自学笔记-lambda函数(来自廖雪峰的官网Python3)
  11. python建模_python建模实例详解
  12. 微信小程序获取用户头像和昵称能力调整!新的代替方案!
  13. C语言程序设计--教师信息管理系统
  14. 进程间通信-消息机制
  15. Python代码大全,海量代码任你下载
  16. linux indent添加,linux indent格式化代码
  17. esxi改mac地址_ESXI克隆CentOS修改MAC地址
  18. long型转String(*)
  19. Bullet physics 引擎的官方文档翻译
  20. Tomcat错误页重定向

热门文章

  1. 水晶报表钻取(深化)之分组法
  2. idea怎么调成黑色页面
  3. Elasticsearch中如何进行排序(中文+父子文档+嵌套文档)
  4. eclipse——jsp字体设置
  5. idea中maven导入jar包
  6. UnityShader入门精要-3.3 UnityShader的结构
  7. Markdown语法记录
  8. 不同系统平台下Java默认的安装路径
  9. shell 读mysql内数据
  10. Docker用Commit给容器做快照