vs2008 + WinDDK(7600.16385.1)编译错误的问题

来源:互联网 发布:西南大学网络与继续教育学院 编辑:程序博客网 时间:2024/06/06 02:15
之前装了vs2005 配置了 WinDDK(7600.16385.1),能够正常使用
现在因为项目需要安装了vs2008结果。。。

New个项目都错误一大堆:

C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(94) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(94) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(94) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(94) : error C2448: '_isctype' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(94) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(94) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2448: '_isctype_l' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2146: syntax error : missing ';' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(96) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(96) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(96) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(96) : error C2448: 'isalpha' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(96) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2448: '_isalpha_l' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2146: syntax error : missing ';' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(98) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(98) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(98) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(98) : error C2448: 'isupper' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(98) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2448: '_isupper_l' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2146: syntax error : missing ';' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(100) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(100) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(100) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(100) : error C2448: 'islower' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(100) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2448: '_islower_l' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2146: syntax error : missing ';' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(102) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(102) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(102) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(102) : error C2448: 'isdigit' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(102) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2448: '_isdigit_l' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2146: syntax error : missing ';' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(104) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(104) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(104) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(104) : error C2448: 'isxdigit' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(104) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2448: '_isxdigit_l' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2146: syntax error : missing ';' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(106) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(106) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(106) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(106) : error C2448: 'isspace' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(106) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2448: '_isspace_l' : function-style initializer appears to be a function definition
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2146: syntax error : missing ';' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(108) : error C2144: syntax error : 'int' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(108) : error C2065: '_In_' : undeclared identifier
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(108) : error C2144: syntax error : 'int' should be preceded by ')'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(108) : fatal error C1003: error count exceeds 100; stopping compilation


最后发现还是 include 头文件顺序的问题:

Hi, I found a solution, don't know why this is working, but it is!:

In Visual Studio go to:

Tools->Options->Projects->VC++ Directories and then Show directories for: include files.

Add this folders:

C:\WinDDK\7600.16385.1\inc\ddk and C:\WinDDK\7600.16385.1\inc\api

Now here is the trick that solved the problem for me and I don't know why, because seems odd but here it is:

C:\WinDDK\7600.16385.1\inc\ddk -> This directory have to be the first directory in the list!

C:\WinDDK\7600.16385.1\inc\api -> This directory have to be ABOVE "$(WindowsSdkDir)\include" BUT BELOW "$(VCInstallDir)include"

Example:

C:\WinDDK\7600.16385.1\inc\ddk
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
C:\WinDDK\7600.16385.1\inc\api
$(WindowsSdkDir)\include
$(FrameworkSDKDir)include

0 0