chudd
驱动牛犊
驱动牛犊
  • 注册日期2003-07-02
  • 最后登录2010-09-21
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望20点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:5299回复:2

加入头文件ntifs.h,编译时报错说 redefinition,不知什么原因?

楼主#
更多 发布于:2008-09-16 15:51
写了一小段代码,原来没有包含其他 .h 文件,编译正确。之后新加了#include <ntifs.h>,并在代码中使用了ObQueryNameString()函数,编译时报错:
c:\winddk\6000\inc\ddk\ntifs.h(85) : error C2371: 'PEPROCESS' : redefinition; different basic types
c:\winddk\6000\inc\ddk\ntifs.h(86) : error C2371: 'PETHREAD' : redefinition; different basic types

不太明白,难道是 ntifs.h 本身出现了重复定义的问题?
我用的是WDK 6000,其中的ntifs.h 文件。大家在使用这个ntifs.h 文件编译时也出这种问题吗?
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2008-09-17 11:57
你在#include <ntifs.h>之前#include <ntddl.h>,
在驱动中,这两个头文件无法同时包含。
如果一定要使用<ntifs.h>中的定义,或者是把<ntddk.h>的包含注释掉,或者是直接把定义拷贝过来。
一切都是时间问题!
chudd
驱动牛犊
驱动牛犊
  • 注册日期2003-07-02
  • 最后登录2010-09-21
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望20点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-09-17 12:23
谢谢!真是这个问题!
游客

返回顶部