2009-08-12 41 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++ /高級/顯示包含」)來查看哪些標題包含在哪裏。