这几天为了使用一个带有256*256 PNG格式的icon图标,必须在visual studio 2008上编译。因此,在一台xp机器上装了2008,之前这台电脑还安装了sdk,WDK和vs2005.
结果一编译就出错了。以为是xp系统问题,于是又拿了台win7的电脑试了一下,这台电脑之前也装了SDK,WDK和VS2005。结果出现了一样的错误。接着以为是因为装了vs2005的原因,因此又找了一台纯净的,刚装完系统的电脑再试,系统为win7。结果还是一样。以下是错误内容:
Compiling...Stdafx.cpp
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(60) : error C2065: '_In_opt_' : undeclared identifier
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(60) : error C2146: syntax error : missing ')' before identifier 'new_handler'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(60) : warning C4229: anachronism used : modifiers on data are ignored
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(60) : error C2059: syntax error : ')'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(85) : error C2065: '_Size' : undeclared identifier
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(85) : error C2448: '_Ret_opt_bytecap_' : function-style initializer appears to be a function definition
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(86) : error C2065: '_Size' : undeclared identifier
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(86) : error C2448: '_Ret_opt_bytecap_' : function-style initializer appears to be a function definition
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(107) : error C2065: '_In_' : undeclared identifier
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(107) : error C2144: syntax error : 'int' should be preceded by ')'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(107) : error C2448: '_set_new_mode' : function-style initializer appears to be a function definition
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(107) : error C2059: syntax error : ')'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(118) : error C2143: syntax error : missing ';' before '__cdecl'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(119) : error C2143: syntax error : missing ';' before '__cdecl'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(119) : error C2065: '_In_opt_' : undeclared identifier
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(119) : error C2146: syntax error : missing ')' before identifier '_PNH'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(119) : warning C4229: anachronism used : modifiers on data are ignored
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(119) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\new.h(119) : error C2059: syntax error : ')'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(59) : error C2143: syntax error : missing ';' before '__cdecl'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : error C2065: '_In_' : undeclared identifier
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : error C2144: syntax error : '_EXCEPTION_RECORD' should be preceded by ')'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : error C2448: '_except_handler' : function-style initializer appears to be a function definition
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(61) : error C2144: syntax error : 'void' should be preceded by ';'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(62) : error C2144: syntax error : '_CONTEXT' should be preceded by ';'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(63) : error C2144: syntax error : 'void' should be preceded by ';'
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(64) : error C2059: syntax error : ')'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(49) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(51) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(53) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(157) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(158) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(159) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(160) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(161) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(164) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(165) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(167) : error C2143: syntax error : missing ';' before '*'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(168) : error C2143: syntax error : missing ';' before '*'
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) : fatal error C1003: error count exceeds 100; stopping compilation
Build log was saved at "file://c:\Skola\Diplomka\Pouzivane testovaci programy v C++\eMuleMorph\eMulev0.49c.-MorphXTv11.3-src_and_libs\srchybrid\release\BuildLog.htm"
emule80 - 103 error(s), 2 warning(s)
========== Build: 9 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
经过网上调查后,发现是WDK的问题。
我在装完vs2008后,又装了SDK和WDK。
然后在vs2008中,Tools->Options...->Projects and Solutions->VC++ Directories 的include files中 把
c:\WinDDK\7600.16385.0\inc\api 和
c:\WinDDK\7600.16385.0\inc\ddk
放在了最上面。现在把这两个移到最下面,以上错误就解决了。
顺便说一下,这回要转2008是因为一个带有256*256的png的icon图标。但是换成2008后,在xp下还是不能编译成功,在win7下编译成功。