PIYO - Tech & Life -

VS2005 アプリケーション構成が正しくない

Windows8とVisual Studio 2005の組み合わせのせいなのかはわからないが少しはまった問題があるのでメモしておく。

開発ツール対応 OS 一覧

そのそも↑のページにあるように

  • Windows 8
  • Visual Studio 2005

の組み合わせは公式には使えないことになっており、インストール時にも警告がでまくる。それでもインストールすればそれなりには使えるのでそのまま使っていた。

ところが、あるとき環境依存の問題が発生した。それはビルド済みのスタティックライブラリ(.lib)を客先からもらって、手元でそのライブラリとリンクするプログラムを書いて動かしたときに起こった。

リリースビルドでは動くのにデバッグビルドではこのようなエラーが出て動かないというものだった。

正確に言うとデバッグ版でもデバッグなし実行であれば動作した。

もらったスタティックライブラリには、デバッグ情報付きのものとそうでないものがあった。デバッグ版では当然デバッグ情報を含むlibをリンクしていたのだが、これをデバッグ情報を持たないものにリンクさせたところ正常に動くようになった。

ライブラリをビルドした環境がVS2005+Win7だったらしいが、その環境でつけたデバッグ情報が正しく使えなかったことによって起こった問題らしい。

本当の原因というのは解明できなかったが、デバッグ情報のありなしによって動く場合と動かない場合があるというのがわかったので良しとする。この手の問題は同じ現象に出会う人はごく少ない気もするが、誰か1人でも助かるといいなーと思って書いておいた。