unnamed
驱动牛犊
驱动牛犊
  • 注册日期2008-01-23
  • 最后登录2008-03-10
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:4700回复:3

请教!使用WDK为什么引入个winddi.h都出这么多错?

楼主#
更多 发布于:2008-01-23 16:08
在vista ultimate 用VS5005,WDK(是Windows Driver Kits 6000, 不是DDK)

设置好include路径(C:\WinDDK\6000\inc\api)后
仿照例子,引入下面一些头文件不做任何操作

#include <STDDEF.H>
#include <STDLIB.H>
#include <OBJBASE.H>
#include <STDARG.H>
#include <STDIO.H>
#include <INITGUID.H>
#include <WINDEF.H>
#include <WINERROR.H>
#include <WINBASE.H>
#include <WINGDI.H>
#ifdef __cplusplus
extern "C"
{
#endif // cplusplus
    #include <WINDDI.H>
#ifdef __cplusplus
}
#endif // cplusplus


发现引入的winddi.h在编译的时候有错误 (不引入winddi.h,仅仅引入上面的是没问题的)

错误出在winddi.h中这几句话,很奇怪的语法,不明白

line 1624:  __field_bcount(cjBits) PVOID   pvBits;
line 1719: __in_data_source(USER_MODE) ULONG    iType,

VS提示错误如下:
1>C:\WinDDK\6000\inc\api\winddi.h(1624) : error C2061: syntax error : identifier 'cjBits'
1>C:\WinDDK\6000\inc\api\winddi.h(1624) : error C3646: 'PVOID' : unknown override specifier
1>C:\WinDDK\6000\inc\api\winddi.h(1624) : error C3646: 'pvBits' : unknown override specifier
....

然后我在google找了一下__field_bcount,发现这貌似是一个系统函数或者宏,但是又找不到相关的定义

请问这个是什么东西?  应该怎么处理?  谢谢
unnamed
驱动牛犊
驱动牛犊
  • 注册日期2008-01-23
  • 最后登录2008-03-10
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-01-25 16:16
没有人遇到这个问题么?还是大家不屑于回答啊?


我发现用WDK下面的命令行环境能够用CL命令编译过的,但是环境配置太大了,还不知道什么设置在起作用  研究中......
unnamed
驱动牛犊
驱动牛犊
  • 注册日期2008-01-23
  • 最后登录2008-03-10
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-01-27 11:32
__field_bcount这些宏再SpecialStrings.h文件里面都有定义,估计是开关没有设置好,没打开
unnamed
驱动牛犊
驱动牛犊
  • 注册日期2008-01-23
  • 最后登录2008-03-10
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-03-10 14:27
引用文件冲突了   吧WDK引用路径提前到VS工程设置最前头就好了
游客

返回顶部