0

VS 2005 で開発された実行可能な Win32 コンソール アプリケーションを 2010 年にコンパイルしています。VS 2005 ですべての設定を確認しましたが、次のビルド エラーがスローされます。助けてください。

       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
4

2 に答える 2

2

あなたのショーのこの行には、ちょっとした景品が含まれています

C:\Program Files\Microsoft SDKs\Windows\v6.1\Include\sal.h

どういうわけか、まだ VS 2005 ヘッダーが含まれています。最初のステップとして、v6.1 ディレクトリの名前を変更して、問題が解決するかどうかを確認します。それだけの場合は、プロジェクトの設定を調べて、C:\Program Files\Microsoft SDKs が参照されないようにします。

于 2012-07-31T07:26:15.817 に答える
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"
于 2012-07-31T07:33:34.587 に答える