奇怪!!!的驱动编译问题

sukui888 2012-04-26 10:30:19
用WDK编译驱动的时候,我引用了WDK/inc/api里面的头文件d3d10umddi.h
(只引用了这一个头文件,其他什么都没做),编译后出现大量(上百个)的语法错误,
而且错误都出现在d3d10umddi.h头文件所包含的头文件中,如dxmini.h。
有没有人遇到过这种问题,求指教,谢谢了!
...全文
119 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zO_Oz 2012-04-26
  • 打赏
  • 举报
回复
如果你用的是.c的源文件,改成.cpp用C++的语法试试,虽然出错的是头文件。。。。
注意DriverEntry以及一些头文件的extern "C"。。。。。。。。
sukui888 2012-04-26
  • 打赏
  • 举报
回复
我也觉得是没有包含必要的其他头文件,例如我如果#include<windows.h>,错误就会减少,而且出现大量语法错误的回事d3d10umddi.h中包含的另外的头文件了。[Quote=引用 1 楼 的回复:]

贴一下具体的错误

一般是由于标点符号或者文件包含顺序及缺少相关的头文件
[/Quote]
sukui888 2012-04-26
  • 打赏
  • 举报
回复
你好!谢谢你的回复,我只包含了d3d10umddi.h一个头文件,没有其他源代码,错误如下:
e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(68) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(123) : error C2143: syntax error : missing ';' before '__stdcall'
missing ';' before identifier 'PhysicalAddress'
missing ';' before identifier 'HighestAcceptableAddress'
missing ';' before identifier 'CpuTranslatedAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1081) : error C2146: syntax error : missing ';' before identifier 'AgpApertureBase'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1081) : error C2146: syntax error : missing ';' before identifier 'AgpApertureBase'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1130) : error C2146: syntax error : missing ';' before identifier 'BaseAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1130) : error C2146: syntax error : missing ';' before identifier 'BaseAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1131) : error C2146: syntax error : missing ';' before identifier 'CpuTranslatedAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1131) : error C2146: syntax error : missing ';' before identifier 'CpuTranslatedAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1190) : error C2146: syntax error : missing ';' before identifier 'CPUTranslatedAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1190) : error C2146: syntax error : missing ';' before identifier 'CPUTranslatedAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1532) : error C2146: syntax error : missing ';' before identifier 'DmaBufferPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1532) : error C2146: syntax error : missing ';' before identifier 'DmaBufferPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1604) : error C2146: syntax error : missing ';' before identifier 'DmaBufferPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1604) : error C2146: syntax error : missing ';' before identifier 'DmaBufferPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1852) : error C2146: syntax error : missing ';' before identifier 'SegmentAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1852) : error C2146: syntax error : missing ';' before identifier 'SegmentAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1858) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1858) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1864) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1864) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1886) : error C2146: syntax error : missing ';' before identifier 'DummyPage'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1886) : error C2146: syntax error : missing ';' before identifier 'DummyPage'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(2111) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(2111) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(2214) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(2214) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(2261) : error C2146: syntax error : missing ';' before identifier 'SrcPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(2261) : error C2146: syntax error : missing ';' before identifier 'SrcPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(2577) : error C2146: syntax error : missing ';' before identifier 'PrimaryAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(2577) : error C2146: syntax error : missing ';' before identifier 'PrimaryAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(3937) : error C2143: syntax error : missing ';' before '*'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(3937) : error C2143: syntax error : missing ';' before '*'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(3937) : error C2365: 'DXGKDDI_RENDER' : redefinition; previous definition was 'function'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(3937) : error C2365: 'DXGKDDI_RENDER' : redefinition; previous definition was 'function'
1>1>e:\projects\usermode\usermode\usermode.cpp(41) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
1>1>e:\projects\usermode\usermode\usermode.cpp(41) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(68) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(68) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(114) : error C2146: syntax error : missing ';' before identifier 'DmaBufferPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(114) : error C2146: syntax error : missing ';' before identifier 'DmaBufferPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(123) : error C2143: syntax error : missing ';' before '__stdcall'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(123) : error C2143: syntax error : missing ';' before '__stdcall'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(159) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(159) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(192) : error C2146: syntax error : missing ';' before identifier 'DmaBufferPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(192) : error C2146: syntax error : missing ';' before identifier 'DmaBufferPhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(440) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(440) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(610) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(610) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1021) : error C2146: syntax error : missing ';' before identifier 'HighestAcceptableAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1021) : error C2146: syntax error : missing ';' before identifier 'HighestAcceptableAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1066) : error C2146: syntax error : missing ';' before identifier 'BaseAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1066) : error C2146: syntax error : missing ';' before identifier 'BaseAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1068) : error C2146: syntax error : missing ';' before identifier 'CpuTranslatedAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1858) : error C2146: syntax error : missing ';' before identifier 'PhysicalAddress'
1>1>e:\winddk\7600.16385.1\inc\api\d3dkmddi.h(1858) : error C2146: syntax error :
1>1>LINK : fatal error LNK1181: cannot open input file 'e:\projects\usermode\usermode\objchk_win7_x86\i386\usermode.obj'
1>1>link : error LNK1181: cannot open input file 'e:\projects\usermode\usermode\objchk_win7_x86\i386\usermode.obj'
1>DDKBLD: =======================================================
1>DDKBLD: Build complete
1>DDKBLD: Building browse information files
1>生成日志保存在“file://e:\Projects\UserMode\UserMode\BuildLog.htm”
1>UserMode.W7 - 110 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
[Quote=引用 1 楼 的回复:]

贴一下具体的错误

一般是由于标点符号或者文件包含顺序及缺少相关的头文件
[/Quote]
woshi_ziyu 2012-04-26
  • 打赏
  • 举报
回复
贴一下具体的错误

一般是由于标点符号或者文件包含顺序及缺少相关的头文件

21,619

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧