error C2146: 语法错误: 缺少“;”(在标识符“READY_EXISTS”的前面) 一系列诡异的错误。。。

时间:2021-06-19 17:14:06
1>  StdAfx.cpp
1>  _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41931): error C2146: 语法错误: 缺少“;”(在标识符“READY_EXISTS”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41931): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41940): error C2146: 语法错误: 缺少“;”(在标识符“_ENTRY_MAP_LIMIT”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41940): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41958): error C2146: 语法错误: 缺少“;”(在标识符“ERENCED”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41958): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41985): error C2146: 语法错误: 缺少“;”(在标识符“_SETTINGS”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41985): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41994): error C2146: 语法错误: 缺少“;”(在标识符“RY_BLOCK_HANDLE”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41994): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42012): error C2146: 语法错误: 缺少“;”(在标识符“VERFLOW”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42012): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42030): error C2146: 语法错误: 缺少“;”(在标识符“RANGE_HANDLE”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42030): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42039): error C2146: 语法错误: 缺少“;”(在标识符“_LOCK_COUNT_EXCEEDED”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42039): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42081): warning C4005: “ERROR_”: 宏重定义
1>          c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(41856) : 参见“ERROR_”的前一个定义
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42102): error C2146: 语法错误: 缺少“;”(在标识符“HANDLE”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42102): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42120): error C2146: 语法错误: 缺少“;”(在标识符“ALREADY_SET_RESET”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42138): error C2146: 语法错误: 缺少“;”(在标识符“ESTROYED”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42138): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42147): error C2146: 语法错误: 缺少“;”(在标识符“_SET_IS_BEING_USED”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42147): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42156): error C2146: 语法错误: 缺少“;”(在标识符“_SET_TOO_SMALL”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42156): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42165): error C2146: 语法错误: 缺少“;”(在标识符“LOCKED_USING_RESERVED_PAGE”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42165): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42192): error C2146: 语法错误: 缺少“;”(在标识符“CEEDED_LIMIT”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42192): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42204): error C2146: 语法错误: 缺少“;”(在标识符“INCOMPATIBLE”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winerror.h(42204): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(13733): error C2146: 语法错误: 缺少“;”(在标识符“PARENT_GPA_PAGES_USED”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(13733): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(13733): error C2143: 语法错误 : 缺少“;”(在“<class-head>”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(13733): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(158): warning C4003: “DEFINE_GUID”宏的实参不足
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(158): error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(158): error C2059: 语法错误:“常量”
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(160): warning C4003: “DEFINE_GUID”宏的实参不足
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(160): error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(160): error C2059: 语法错误:“常量”
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(162): warning C4003: “DEFINE_GUID”宏的实参不足
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(162): error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(162): error C2059: 语法错误:“常量”
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(164): warning C4003: “DEFINE_GUID”宏的实参不足
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(164): error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(164): error C2059: 语法错误:“常量”
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(166): warning C4003: “DEFINE_GUID”宏的实参不足
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(166): error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(166): error C2059: 语法错误:“常量”
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(174): warning C4003: “DEFINE_GUID”宏的实参不足
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(174): error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(174): error C2059: 语法错误:“常量”
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(178): warning C4003: “DEFINE_GUID”宏的实参不足
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(178): error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\shlguid.h(178): error C2059: 语法错误:“常量”
1>
1>生成失败。
1>
1>已用时间 00:00:02.28
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========


程序比较大,是MFC的,主要是错误都指向头文件而且是系统的头文件,从网上搜的方法都没用啊,求各位大神帮帮忙啊~~~

5 个解决方案

#1


vc的错误定位分析的不够好,一般不会是系统头文件的问题,

 StdAfx.cpp
注释掉一些头文件,编译看看

然后分段注释掉一些代码,再编译看看

一步一步查找。

#2


偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

#3


引用 1 楼 gumh 的回复:
vc的错误定位分析的不够好,一般不会是系统头文件的问题,

 StdAfx.cpp
注释掉一些头文件,编译看看

然后分段注释掉一些代码,再编译看看

一步一步查找。
StdAfx.h和cpp非常简单,而且注释掉也没有影响,还是这一大堆错误,唉,分段排查难度也有点大啊,连主程序都没有。。。。

#4


引用 2 楼 zhao4zhong1 的回复:
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
好吧,对了,我是用VC6.0编的程序,需要用openmp并行所以又用vs2008直接打开DSW工程编译,前段时间还行,这过了两个月程序几乎没有但是打开再编译就出现这些错误了。。。

#5


 1。  “DEFINE_GUID”宏的实参不足
这个宏定义可能有冲突

2。 去掉Generate Preprocessed File 看看

#1


vc的错误定位分析的不够好,一般不会是系统头文件的问题,

 StdAfx.cpp
注释掉一些头文件,编译看看

然后分段注释掉一些代码,再编译看看

一步一步查找。

#2


偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

#3


引用 1 楼 gumh 的回复:
vc的错误定位分析的不够好,一般不会是系统头文件的问题,

 StdAfx.cpp
注释掉一些头文件,编译看看

然后分段注释掉一些代码,再编译看看

一步一步查找。
StdAfx.h和cpp非常简单,而且注释掉也没有影响,还是这一大堆错误,唉,分段排查难度也有点大啊,连主程序都没有。。。。

#4


引用 2 楼 zhao4zhong1 的回复:
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
好吧,对了,我是用VC6.0编的程序,需要用openmp并行所以又用vs2008直接打开DSW工程编译,前段时间还行,这过了两个月程序几乎没有但是打开再编译就出现这些错误了。。。

#5


 1。  “DEFINE_GUID”宏的实参不足
这个宏定义可能有冲突

2。 去掉Generate Preprocessed File 看看