aKnightChen
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2005-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1438回复:5

书上的WDM1例子(EXE)无法通过,提示SETUPAPI。H有错。。。

楼主#
更多 发布于:2003-05-31 10:54
我的编绎环境:
win2000,win2000DDK,VC++6.0
--------
<<WINDOWS WDM设备驱动程序开发>>
例子:WDM1(EXE)
驱动程序我是BUILD成功了.
但是测试WIN32用户程序时有问题,
问题如下:
----------------------------------
我把原先的#INCLUDE \"C:\\98DDK\\....\\SETUPAPI.H\"
改为 \"C:\\PROGRAME FILES\\NTDDK\\....\\SETUPAPI.H\"

可是编绎是出现36个ERRORS,
全都是单元SETUPAPI.H出错.


c:\\program files\\ntddk\\inc\\setupapi.h(514) : error C2146: syntax error : missing \';\' before identifier \'Reserved\'
c:\\program files\\ntddk\\inc\\setupapi.h(514) : error C2501: \'ULONG_PTR\' : missing storage-class or type specifiers
c:\\program files\\ntddk\\inc\\setupapi.h(514) : error C2501: \'Reserved\' : missing storage-class or type specifiers
c:\\program files\\ntddk\\inc\\setupapi.h(526) : error C2146: syntax error : missing \';\' before identifier \'Reserved\'
c:\\program files\\ntddk\\inc\\setupapi.h(526) : error C2501: \'ULONG_PTR\' : missing storage-class or type specifiers
......等等错误...

Wdm1Test.exe - 36 error(s), 0 warning(s)

----------------------------------

哪位“过来人”帮我指点一下。小弟感激不尽!
 :( :(

[编辑 -  5/31/03 by  aKnightChen]
AthlonXP
驱动小牛
驱动小牛
  • 注册日期2003-05-11
  • 最后登录2010-01-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-31 11:02
要把setupapi.lib加入到项目中,书里面也有关于例子的说明,你再看看
AthlonXP是个好人,他一生没有欺压过同侪,没有背叛过朋友。从小到大,他都是个好孩子,没有出过什么差错,没有让家人师长担过心。虽然用一句时髦的话,他不善于"推销"自己,但是做学问扎扎实实,不会投机取巧;做工作也是一步一个脚印,不会敷衍塞责。他虽然是个大烟枪,偶尔也喝喝酒,但是没有什么见不得人的恶习。他花钱虽然不特别大方,可是也不吝啬。许多不如他的人,或幸或不幸,一般的也都成了家。可是为什么MM不喜欢他呢??
aKnightChen
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2005-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-04 15:59
我在LINK属性里加上(Object/Library Modules)里加上:
C:\\Program Files\\NTDDK\\inc\\setupapi.lib
即改为了:
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib C:\\Program Files\\NTDDK\\inc\\setupapi.lib

还是不行呀.
仍是36个ERROR!
----
会不会WDM1的EXE例子只能在WIN98编绎通过???
 :mad: :mad: :mad:
windyguy
驱动牛犊
驱动牛犊
  • 注册日期2003-05-07
  • 最后登录2004-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-04 16:43
如果你是使用VC++6.0的话,直接包含setupapi.h这个头文件,不使用DDK中带的,像这样#include \"setupapi.h\"。

Chris Cant的书里面是说VC++5.0的setupapi.h过时……

但是lib文件还是要加入工程设置的。
aKnightChen
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2005-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-04 16:57
搞定!!!

爱死你们这些高手了! :P
我在LINK里加上 setupapi.h
而不是 \"c:\\....\\ntddk\\setupapi.h\"

同时在程序里将#INCLUDE \"C:\\WIN98\\DDK\\....\\SETUPAPI.H\"
改为 #include \"setupapi.h\"
就成功了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不过下面又有一个问题,安将时.inf文件有错,提示\"找不到硬件”,我该怎么改INF文件呢?
AthlonXP
驱动小牛
驱动小牛
  • 注册日期2003-05-11
  • 最后登录2010-01-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-04 17:22
搞定!!!

爱死你们这些高手了! :P
我在LINK里加上 setupapi.h
而不是 \"c:\\....\\ntddk\\setupapi.h\"

同时在程序里将#INCLUDE \"C:\\WIN98\\DDK\\....\\SETUPAPI.H\"
改为 #include \"setupapi.h\"
就成功了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不过下面又有一个问题,安将时.inf文件有错,提示\"找不到硬件”,我该怎么改INF文件呢?


你要是pci设备的话,Hardware ID只用device id和vendor id,其余的什么版本id都不要
AthlonXP是个好人,他一生没有欺压过同侪,没有背叛过朋友。从小到大,他都是个好孩子,没有出过什么差错,没有让家人师长担过心。虽然用一句时髦的话,他不善于"推销"自己,但是做学问扎扎实实,不会投机取巧;做工作也是一步一个脚印,不会敷衍塞责。他虽然是个大烟枪,偶尔也喝喝酒,但是没有什么见不得人的恶习。他花钱虽然不特别大方,可是也不吝啬。许多不如他的人,或幸或不幸,一般的也都成了家。可是为什么MM不喜欢他呢??
游客

返回顶部