jsf
jsf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5785回复:13

#include \"c:\\ntddk\\inc\\setupapi.h\"的问题

楼主#
更多 发布于:2002-04-25 13:13
我将驱动开发光盘中的WDM1程序的测试程序在win2000下编译,结果
提示说setupapi.h的位置错误,我将它改为标题所示的路径,编译后
又说setupapi.h中的ULONG_PTR等没有定义
有人说是没有加入setupapi.lib所致,我又在Project->setting->
link->library modules中添加c:\\ntddk\\libchk\\i386\\setupapi.lib
可是还是不行,还是说:
c:\\ntddk\\inc\\setupapi.h(526) : error C2501: \'ULONG_PTR\' : missing storage-class or type specifiers等等
有人说必须用98DDK才可以编译?
难道说win2000下不能这样写驱动吗?
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-25 13:26
你是怎么编译的?是全IDE集成环境还是在命令行下用BUILD?不管怎样,你得先成功初始化编译环境,设置正确的环境变量。
Tom_lyd
jsf
jsf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-25 13:35
在全IDE集成的环境啊,再说这个不是驱动,只是一个TEST程序
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-25 13:53
在全IDE集成的环境啊,再说这个不是驱动,只是一个TEST程序
 

这好象有点不对,IDE环境中的DDK路径应该设置了吧。你这个程序是不是Chris Cant一书中的程序?我记得我曾在98下成功编译过它。
Tom_lyd
jsf
jsf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-25 16:25
对,就是Windows WDM设备驱动开发指南光盘里带的例子,能在win2000下编译吗?
我有看了WALTONLY的例子,好像两者差别比较大
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-25 16:45
    2000下应该是可以的,那本书最大的特点是同时展现了2K和98下WDM的编写方法及异同。但我记得那本书中有的程序有些错误,如有些INF文件会造成系统提示指定的位置找不到硬件信息等错误。
    你的问题应该是路径设置的问题,ULONG_PTR除了DDK中有声明外,SDK中也有声明.
    如果你有装SDK,请在VC的IDE路径设置中将SDK的INCLUDE移到最上端。
    
Tom_lyd
wuqix
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2008-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-25 16:55
你setupapi.h用错了,用vc的setupapi.h。
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-25 17:37
书上说VC5.0的setupapi比较老。VC6.0直接用VC自带的SetupApi.h和SetupApi.lib就可以了。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
jsf
jsf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-25 18:15
果然用VC自带的就行了,真的不可理解,为什么用NTDDK的不行?
难道是我设置有问题?
我觉得还是NTDDK的要新一些,文件都大很多!
jsf
jsf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-25 18:21
哦,再问一个编译的问题,如果我设置Tool-》Option-》Directory-》Include Files和Library Files里的路径既有VC6
的路径,又有NTDDK的路径,那么编译时是Link VC6中的还是NTDDK
中的setupapi。lib,包含的是VC6中的还是NTDDK中的setupapi。h
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-04-26 08:20
看谁的包含路径在先,编译是按路径出现顺序搜索的。
Tom_lyd
wuqix
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2008-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-04-26 19:29
ddk的setupapi.lib没问题,问题在那个.h上。有两个宏定义的有冲突。
jsf
jsf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-04-26 21:49
TO wuqix:
你能说详细一点吗?
canger
驱动牛犊
驱动牛犊
  • 注册日期2008-07-14
  • 最后登录2009-07-11
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2009-06-23 22:33
Re:#include \
实际上用哪一个都可以,你编译不过去是因为没有安装DDK,不安装也是可以的,你将那个工程文件中的编译生成的文件全部删除,包括DSW和DSP文件(那里面已经留下原来的链接信息),只留下.h,.c和资源文件,然后重建工程再编译试试。
游客

返回顶部