我正在编译2010年在VS 2005中开发的可执行Win32控制台应用程序。我已经检查了VS 2005的所有设置,但仍然会抛出Build Error。请帮忙。
1>------ Rebuild All started: Project: vssreg, Configuration: Debug x64 ------
1> stdafx.cpp
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(543): error C2065: '_In_opt_z_' : undeclared identifier
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(543): error C2143: syntax error : missing ')' before 'const'
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(543): warning C4229: anachronism used : modifiers on data are ignored
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(543): error C2182: '_invalid_parameter' : illegal use of type 'void'
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(543): error C2491: '_invalid_parameter' : definition of dllimport data not allowed
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(543): error C2059: syntax error : ')'
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2065: '_In_opt_z_' : undeclared identifier
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing ')' before 'const'
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): warning C4229: anachronism used : modifiers on data are ignored
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2182: '_invoke_watson' : illegal use of type 'void'
When I tried to put /ShowIncludes option , im getting following includes info
1>------ Rebuild All started: Project: vssreg, Configuration: Debug x64 ------
1> stdafx.cpp
1> Note: including file: c:\rajesh\hak\hak27x64\2010\hak_27_x64\itxvssreg\stdafx.h
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
1> Note: including file: C:\Program Files\Microsoft SDKs\Windows\v6.1\Include\sal.h
1> Note: including file: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h
答案 0 :(得分:2)
你的节目中的这一行包含了一些赠品
C:\ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Include \ sal.h
不知何故,你仍然包括一个VS 2005标题。作为第一步,我会尝试重命名v6.1目录,看看是否能解决问题。如果是这样,那么请查看您的项目设置,以便不引用C:\ Program Files \ Microsoft SDK。
答案 1 :(得分:2)
此外(除了在VC++ Directories
和C++\General
上检查包含)之外,尝试更改项目属性中的Platform Toolset
。
使用SDK注册检查注册表项。是的,示例适用于Windows v7.1。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows]
"CurrentInstallFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\"
"ProductVersion"="v7.1"
[HKEY_CURRENT_USER\Software\Microsoft\Microsoft SDKs\Windows]
"CurrentInstallFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\"
"CurrentVersion"="v7.1"