Visual Studio 2008からVisual studio 2010 への移行で嵌まったので備忘録。
VS2010でコンパイルすると以下のエラーがでてリンクが出来ない。
error LNK2022: メタデータの操作に失敗しました (80131195) : カスタム属性が適合しません:
素性としてネイティブとマネージの混合プロジェクトで、元々はVS2003で構築した物です。
結局、原因としては、_WIN32_WINNT
をコンパイルスイッチで指定していたことです。
さらに一部のコードでは別のバージョンが内部的に指定されていました。これがどうも良くなかったみたいですね。
余談ですが、VS2003当時は、デフォルトのWINVER
の値が低くNTタイマーを使用するために明示的に_WIN32_WINNT
バージョンを指定していましたが、ここにあるようにWindows 98などの古いOSが非サポートになったおかげで、バージョンを明示しなくてもNTタイマーが使用できるようになっていました。