我在编译时遇到这样的错误,我的两个源文件同时包含了某个头文件(ntddndis.h),便都出现这样的错误:
Compiling...
PTUSERIO.CPP
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2146: syntax error : missing ';' before identifier 'Offset'
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'ULONG_PTR' : missing storage-class or type specifiers
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'Offset' : missing storage-class or type specifiers
ptutils.cpp
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2146: syntax error : missing ';' before identifier 'Offset'
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'ULONG_PTR' : missing storage-class or type specifiers
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'Offset' : missing storage-class or type specifiers
Error executing cl.exe.我怀疑是头文件的顺序放错了(以前出现这样的错误时就是这个原因),可是调换一些头文件的顺序后,出现了更多的类似的错误,求高手帮帮我啊
Compiling...
PTUSERIO.CPP
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2146: syntax error : missing ';' before identifier 'Offset'
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'ULONG_PTR' : missing storage-class or type specifiers
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'Offset' : missing storage-class or type specifiers
ptutils.cpp
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2146: syntax error : missing ';' before identifier 'Offset'
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'ULONG_PTR' : missing storage-class or type specifiers
d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'Offset' : missing storage-class or type specifiers
Error executing cl.exe.我怀疑是头文件的顺序放错了(以前出现这样的错误时就是这个原因),可是调换一些头文件的顺序后,出现了更多的类似的错误,求高手帮帮我啊
如果你是做应用程序,不要直接包含DDK中的头文件,把你需要的定义加到自己的代码中即可。
你说的我都试过了,不行。TO cnzdgs:
你说的我也试过了,没问题的,我已经编译通过并且可以运行了,我是迫不得已才这样做的,但是这样毕竟不太方便,当需要的定义非常多时,比如用到很多宏,由于这样,我想知道到底是什么原因。TO STAR119119:
可能是这样,我的机器上同时装了2k的xp的ddk,用时也没怎么注意,所以我再试试吧
#define DWORD_PTR ULONG_PTR
如果包含ntddk.h就会有ULONG_PTR的定义。但如果不是驱动程序不要这样做,因为应用程序要包含自己常用的头文件,其中很多定义与ntddk冲突。所以应尽可能少包含DDK中的定义,最好是用到什么就把什么加到自己的代码里面,一些宏可以简化不用,例如I/O Control的Code直接定义常量即可。
呵呵,看来都是经验之谈啊,谨记在心,
说实话,我最近在做毕业设计,我想做一个NDIS中间层的个人防火墙,以前没接触过这方面的东西,最近这段时间真是太感谢你了,以后有不懂得我还会来这里问 的,希望您多多指教,多提宝贵意见,有时您的一句话真的可以让我对迷惑好几天的问题豁然开朗,就像那个关于各个缓冲区的问题,我看资料,读的不是很明白,而且老多都是英文的,听您一说,真的让我少走许多弯路。
在这里我对您过去和将来有可能的帮助表示感谢!:-)