wwjmaomao
驱动牛犊
驱动牛犊
  • 注册日期2003-07-07
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5402回复:20

解答:如何在VC下编译WDM驱动程序

楼主#
更多 发布于:2004-01-06 21:12
一:驱动编写(DDK)的环境及调试手段
1:环境
VC6.0+DDK+DDAppWiz.awx  ,按照以上顺序安装,且VC6.0要安装于根目录下,文件DDAppWiz.awx 需要拷贝至Microsoft Visual Studio\\Common\\MSDev98\\Bin\\IDE目录下。
即可实现在VC环境下对驱动程序的编写和编译。
PS:
1 文件DDAppWiz.awx 来源于《Windows2000设备驱动程序设计指南(The Windows 2000 Device Driver Book, A Guide for Programmers, Second Edition)》Art Baker  Jerry Lozano一书的配套光盘。 使用该文件后,可不必设置关于DDK的环境变量,但是要注意把VC中Tools->Options->Dirctarys->include files 中的加入NTDDK\\INC 目录,且要放到前边。
2 DDK是free的开发包及工具,来源于微软的网站。
3 实现对DDK中例子代码编译的过程如下:建立一个EMPTY的 WIN2K DEVICE DRIVER 类型的工程;然后把.c文件加入SouceFiles,.h文件加入HeadFiles中,makefile 和sources 文件加到ResourceFiles中;Build ->Batch Build …->Build all。

最新喜欢:

David_211David_...
asslittle
驱动牛犊
驱动牛犊
  • 注册日期2003-12-18
  • 最后登录2004-09-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-27 11:49
按照上面的步骤做了,但build的时候,出现如下错误:

C:\\Program Files\\Microsoft Visual Studio\\VC98\\Include\\INITGUID.H(19) : fatal error C1189: #error :  initguid: must include objbase.h first.

但包含这个头文件后,又有一堆别的错误,是什么原因?
如何解决?谢谢!
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-13 17:17
对于DDAppWiz.awx 请问哪里可以下载的么?我只有书没有盘 :(
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-13 17:24
哦,突然一下在这本书网站上找到了!
acidfish
驱动小牛
驱动小牛
  • 注册日期2002-05-20
  • 最后登录2009-11-11
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-05-14 17:13
其实我觉得用DDK提供的build编译驱动挺好的。
我现在一般都是用sourceinsight+DDK build
关键是一个习惯的问题。
gantleman
驱动小牛
驱动小牛
  • 注册日期2003-10-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望127点
  • 贡献值1点
  • 好评度18点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-05-15 22:16
VC的例子里有也个类似的NT``.awx是NT4.0的在两千里改改也能用!不过VC6.0的编译指令里没有DRIVER的编译,改起来也没什么意思. :)
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2004-05-15 22:55
VC的例子里有也个类似的NT``.awx是NT4.0的在两千里改改也能用!不过VC6.0的编译指令里没有DRIVER的编译,改起来也没什么意思. :)

VC的link,有个/driver选项,就是产生driver的
LuckGood
驱动牛犊
驱动牛犊
  • 注册日期2002-11-09
  • 最后登录2005-03-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-05-16 22:55
 
哦,突然一下在这本书网站上找到了!
To:fanchao41,我怎么就没有找到呢,能不能上传这个awx文件?谢谢 :)
运好
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-05-18 10:19
To:LuckGood 给你!
附件名称/大小 下载次数 最后更新
2004-05-18_DDAppWiz.awx (109KB)  220
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-05-18 10:31
两点疑问!
1。关于DDAppWiz.awx的目录,《WINDOWS 2000 设备驱动程序设计指南》中讲的是放在...\\micrrosoftVisualStudio\\Common\\MSDev98\\Template 两种方法都可以建立WIN2K DEVICE DRIVER的工程,这是怎么回事?
2。VC++为什么一定要装到根目录啊?如果现在没装在根目录下,就一定要重装?因为我按照你的方法,而VC没装在根目录下编译还是通不过。。

能给我讲讲是怎么回事吗?万分感谢!
wwjmaomao
驱动牛犊
驱动牛犊
  • 注册日期2003-07-07
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-05-18 12:23
两点疑问!
1。关于DDAppWiz.awx的目录,《WINDOWS 2000 设备驱动程序设计指南》中讲的是放在...\\micrrosoftVisualStudio\\Common\\MSDev98\\Template 两种方法都可以建立WIN2K DEVICE DRIVER的工程,这是怎么回事?
2。VC++为什么一定要装到根目录啊?如果现在没装在根目录下,就一定要重装?因为我按照你的方法,而VC没装在根目录下编译还是通不过。。

能给我讲讲是怎么回事吗?万分感谢!

其实放哪里都行,哪出问题去改哪里就行^_^,我可是贴主哟。没想到这个老贴浮出来了
xhyang0255
驱动牛犊
驱动牛犊
  • 注册日期2004-05-20
  • 最后登录2009-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-05-21 16:27
我按照你们的做了但是出现了新的问题 请大虾求救!谢谢!



--------------------Configuration: MyNicDriver - Win32 Debug--------------------
Linking...
LINK : fatal error LNK1181: cannot open input file \"int64.lib\"
Error executing link.exe.

MyNicDriver.SYS - 1 error(s), 0 warning(s)
哈哈!编程了!!!!!!
LuckGood
驱动牛犊
驱动牛犊
  • 注册日期2002-11-09
  • 最后登录2005-03-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-05-24 09:40
To:modernhill
Thank you!

[编辑 -  5/24/04 by  LuckGood]
运好
wwjmaomao
驱动牛犊
驱动牛犊
  • 注册日期2003-07-07
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-05-24 11:41
我按照你们的做了但是出现了新的问题 请大虾求救!谢谢!



--------------------Configuration: MyNicDriver - Win32 Debug--------------------
Linking...
LINK : fatal error LNK1181: cannot open input file \"int64.lib\"
Error executing link.exe.

MyNicDriver.SYS - 1 error(s), 0 warning(s)
 

找到int64.lib文件的位置,然后程序里加#pragma comment(lib,\"...int64.lib\")
xhyang0255
驱动牛犊
驱动牛犊
  • 注册日期2004-05-20
  • 最后登录2009-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-05-30 16:42
楼上的:我按照你说的做了还是不行
同样的问题
我另外还在vc中配置了相应的路径
结果还是有同样的问题
哈哈!编程了!!!!!!
firing
驱动牛犊
驱动牛犊
  • 注册日期2002-03-14
  • 最后登录2013-04-25
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望250点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-09-16 18:24
在project setting里面把C/C++ ->Preprocessor 和Link->input里面的path改一下,指向你的ddk实际位置
Email: flykz1122@yahoo.com.cn
jiunie
驱动牛犊
驱动牛犊
  • 注册日期2003-12-19
  • 最后登录2005-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-11-23 14:54
我是在 [工具]->[选择]里面的 [目录]中的Library files里添一项,让它指向int64.lib所在的目录,比如我的是
M:\\NTDDK\\LIBFRE\\I386

编译OK!


[编辑 -  11/23/04 by  jiunie]
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-11-26 16:25
现在对于向导生产一个驱动的工程有几个办法了:
1、用Art&Jerry的向导D:\ukyo\Book&Code\WDM\Art & Jerry\Tools\DDAppWiz.awx
叫做W2K Device Driver
2、Walter Oney的向导D:\ukyo\Book&Code\WDM\Walter Oney\Walter Oney1\Walter Oney 1 CD\WDMWIZ.AWX
叫做WDM Driver Wizard
3、有网友提供一个工具,mkdrv.exe也是一个向导,出自于DriverStudio,叫做DevStudio Add-in Wizard
4、还有网友提供的根据,现在一时想不起来了。
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-11-26 16:25
现在对于向导生产一个驱动的工程有几个办法了:
1、用Art&Jerry的向导WDM\Art & Jerry\Tools\DDAppWiz.awx
叫做W2K Device Driver
2、Walter Oney的向导WDM\Walter Oney\Walter Oney1\Walter Oney 1 CD\WDMWIZ.AWX
叫做WDM Driver Wizard
3、有网友提供一个工具,mkdrv.exe也是一个向导,出自于DriverStudio,叫做DevStudio Add-in Wizard
4、还有网友提供的根据,现在一时想不起来了。
lxiaozhou
驱动牛犊
驱动牛犊
  • 注册日期2004-11-30
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-11-30 20:29
其实我觉得用DDK提供的build编译驱动挺好的。
我现在一般都是用sourceinsight+DDK build
关键是一个习惯的问题。
上一页
游客

返回顶部