MS Visual Studio 2008 编译错误 microsoft visual studio 9.0\vc\include\new.h(60) : error C2065: '_In_opt_

在尝试使用Visual Studio 2008编译项目时,遇到错误C2065,该错误在不同系统环境下重现。研究发现错误源于WDK的安装。通过调整VS2008的包含文件路径,将WDK的include目录移至底部,成功解决了编译问题。在Windows XP上仍然无法编译,但在Windows 7上编译成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天为了使用一个带有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下编译成功。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值