VS2010で嵌まった(error LNK2022)

Visual Studio 2008からVisual studio 2010 への移行で嵌まったので備忘録。
VS2010でコンパイルすると以下のエラーがでてリンクが出来ない。
error LNK2022: メタデータの操作に失敗しました (80131195) : カスタム属性が適合しません:

素性としてネイティブとマネージの混合プロジェクトで、元々はVS2003で構築した物です。
結局、原因としては、_WIN32_WINNTをコンパイルスイッチで指定していたことです。
さらに一部のコードでは別のバージョンが内部的に指定されていました。これがどうも良くなかったみたいですね。

余談ですが、VS2003当時は、デフォルトのWINVERの値が低くNTタイマーを使用するために明示的に_WIN32_WINNTバージョンを指定していましたが、ここにあるようにWindows 98などの古いOSが非サポートになったおかげで、バージョンを明示しなくてもNTタイマーが使用できるようになっていました。

M. K. の紹介

IT屋さんです。プログラミングが大好きで今はJavascriptがお気に入りです。
カテゴリー: .Net, プログラミング   パーマリンク