2009-08-12 80 views
0

我有一个C++控制台应用程序,一直做得很好,一旦干净开始抛出编译器错误。显然我已经重新定义或省略了一些东西,但我不确定是什么。与2008年623编译器错误

 
------ Rebuild All started: Project: alpineProbe, Configuration: Release Win32 ------ 
Deleting intermediate and output files for project 'abc', configuration 'Release|Win32' 
Compiling... 
wmiTest.cpp 
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : error C2065: '_$notnull' : undeclared identifier 
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : error C3861: '_Pre1_impl_': identifier not found 
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : error C2146: syntax error : missing ')' before identifier '_Deref_pre2_impl_' 
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : warning C4229: anachronism used : modifiers on data are ignored 
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(64) : error C2059: syntax error : ')' 
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 C4430: missing type specifier - int assumed. Note: C++ does not support default-int 

我确定这是明显的,但我没有看到它。还有一件事,我从备份副本中重新加载了这个项目。

编辑:

使用/ showIncludes由迈克尔·伯尔作为建议提供了以下:

 
1>Note: including file: c:\development\alpineaccess\final\Tokenizer.h 
1>Note: including file: c:\development\alpineaccess\final\testFunctions.h 
1>Note: including file: c:\development\alpineaccess\final\curl/curl.h 
1>Note: including file: c:\development\alpineaccess\final\curl\curlver.h 
1>Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h 
1>Note: including file:  C:\Program Files\Microsoft Visual Studio 9.0\VC\include\crtdefs.h 
1>Note: including file:  C:\Program Files\Microsoft Visual Studio 9.0\VC\include\sal.h 
1>Note: including file:  c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h 
1>Note: including file:  C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windows.h 
1>Note: including file:   C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\sdkddkver.h 
1>Note: including file:   C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h 
1>Note: including file:   C:\Program Files\Microsoft Visual Studio 9.0\VC\include\crtdefs.h 

注意,有通过sourceannotations.h循环引用。我明白问题是什么,但不知道如何解决问题。

回答

2

找到它。感谢Michael Burr和他的建议使用/ showIncludes。

问题在于C++安装中的文件\ CodeAnalysis \ sourceannotations.h已被破坏。重新安装应该修复它。

感谢您的帮助

2

我想你忘了在某行的某处加入SAL.h或它的一个依赖项。您看到的所有错误消息都是由于SAL注释未在头文件中正确处理。

4

JaredPar's answer与它有关系,但你不应该自己包括sal.h - 导致错误的sal.h被拾取(或另一个错误的标题)。 <sal.h>应包含在<crtdefs.h>之内,这是由标准头文件包含的,但很显然,正确的一个不会因为某些原因被拾取。

尝试使用“/showIncludes”选项(IDE的项目选项中的“配置属性/ C/C++ /高级/显示包含”)来查看哪些标题包含在哪里。