阅读:5785回复:13
#include \"c:\\ntddk\\inc\\setupapi.h\"的问题
我将驱动开发光盘中的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下不能这样写驱动吗? |
|
沙发#
发布于:2002-04-25 13:26
你是怎么编译的?是全IDE集成环境还是在命令行下用BUILD?不管怎样,你得先成功初始化编译环境,设置正确的环境变量。
|
|
|
板凳#
发布于:2002-04-25 13:35
在全IDE集成的环境啊,再说这个不是驱动,只是一个TEST程序
|
|
地板#
发布于:2002-04-25 13:53
在全IDE集成的环境啊,再说这个不是驱动,只是一个TEST程序 这好象有点不对,IDE环境中的DDK路径应该设置了吧。你这个程序是不是Chris Cant一书中的程序?我记得我曾在98下成功编译过它。 |
|
|
地下室#
发布于:2002-04-25 16:25
对,就是Windows WDM设备驱动开发指南光盘里带的例子,能在win2000下编译吗?
我有看了WALTONLY的例子,好像两者差别比较大 |
|
5楼#
发布于:2002-04-25 16:45
2000下应该是可以的,那本书最大的特点是同时展现了2K和98下WDM的编写方法及异同。但我记得那本书中有的程序有些错误,如有些INF文件会造成系统提示指定的位置找不到硬件信息等错误。
你的问题应该是路径设置的问题,ULONG_PTR除了DDK中有声明外,SDK中也有声明. 如果你有装SDK,请在VC的IDE路径设置中将SDK的INCLUDE移到最上端。 |
|
|
6楼#
发布于:2002-04-25 16:55
你setupapi.h用错了,用vc的setupapi.h。
|
|
7楼#
发布于:2002-04-25 17:37
书上说VC5.0的setupapi比较老。VC6.0直接用VC自带的SetupApi.h和SetupApi.lib就可以了。
|
|
|
8楼#
发布于:2002-04-25 18:15
果然用VC自带的就行了,真的不可理解,为什么用NTDDK的不行?
难道是我设置有问题? 我觉得还是NTDDK的要新一些,文件都大很多! |
|
9楼#
发布于:2002-04-25 18:21
哦,再问一个编译的问题,如果我设置Tool-》Option-》Directory-》Include Files和Library Files里的路径既有VC6
的路径,又有NTDDK的路径,那么编译时是Link VC6中的还是NTDDK 中的setupapi。lib,包含的是VC6中的还是NTDDK中的setupapi。h |
|
10楼#
发布于:2002-04-26 08:20
看谁的包含路径在先,编译是按路径出现顺序搜索的。
|
|
|
11楼#
发布于:2002-04-26 19:29
ddk的setupapi.lib没问题,问题在那个.h上。有两个宏定义的有冲突。
|
|
12楼#
发布于:2002-04-26 21:49
TO wuqix:
你能说详细一点吗? |
|
13楼#
发布于:2009-06-23 22:33
Re:#include \
实际上用哪一个都可以,你编译不过去是因为没有安装DDK,不安装也是可以的,你将那个工程文件中的编译生成的文件全部删除,包括DSW和DSP文件(那里面已经留下原来的链接信息),只留下.h,.c和资源文件,然后重建工程再编译试试。 |
|