Microsoft Visual C++ 2.0や4.0や5.0で作成されたプログラムを翻訳して動作させる必要があったので、その方法をメモしておきます。
Microsoft Visual C++ 2.0は発売が1995年で、15年以上まえの製品です。当然、現在は販売されていませんし、そう簡単にはてにはいりません。また、Visual C++ 2010で古いプロジェクトを開いても、変換エラーで読み込めませんでした。
そこで、以下の様な手順で変換を試みて見ました。
1.Microsoft Visual C++ 6.0(Microsoft Visual Studio 6.0)でプロジェクトを変換
ファイル -> ワークスペースを開く
拡張子(.dsw .mdp .mak)のプロジェクトファイルを開いて保存し直す
-> 拡張子(.dsw)のプロジェクトファイルができる
ちょうど手元にVisual C++ 6.0があったので、まずVisual C++ 6.0の形式にプロジェクトを変換してみました。
2.Microsoft Visual C++ 2005 Express Editionでプロジェクトを変換
ファイル -> 開く -> プロジェクト/ソリューション
拡張子(.dsw)のプロジェクトファイルを開く
すべてを保存
拡張子(.sln)のソリューションファイルができる
Visual C++ 6.0のプロジェクトをVisual C++ 2010で開いてみましたが、まだ変換エラーがでるものがありました。
3.Microsoft Visual C++ 2010 Express Editionでプロジェクトを変換
ファイル -> 開く -> プロジェクト/ソリューション
拡張子(.sln)のソリューションファイルを開く
Visual Studio 変換ウィザードで変換
すべてを保存
警告がいくつが出ますがなんとか変換できました。
4.プロジェクトプロパティの修正
構成プロパティ
全般
出力ディレクトリ
-> $(SolutionDir)$(Configuration)\
中間ディレクトリ
-> $(Configuration)\
C/C++
全般
警告をエラーとして扱う
-> いいえ (/WX-)
プリコンパイル済みヘッダー
プリコンパイル済みヘッダー出力ファイル
-> $(IntDir)$(TargetName).pch
出力ファイル
ASMリストの場所
-> $(IntDir)
オブジェクトファイル名
-> $(IntDir)
プログラム データベース ファイルの名前
-> $(IntDir)vc$(PlatformToolsetVersion).pdb
リンカー
全般
出力ファイル
-> $(OutDir)$(TargetName)$(TargetExt)
デバッグ
プログラム データベース ファイルの生成
-> $(OutDir)$(TargetName).pdb
マップファイル名
-> $(OutDir)$(TargetName).map
プロジェクトプロパティの出力先などを修正します。
構文エラーや警告がたくさん出ますがとりあえず翻訳を実行してくれるところまでは変換できました。
Expressエディションでは、Microsoft Windows SDK(Microsoft Platform SDK)をインストールして設定しておいたほうが良いようです。