2013年5月19日

Microsoft Visual C++ 2.0のプロジェクトを Visual C++ 2010 Expressで翻訳する方法

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)をインストールして設定しておいたほうが良いようです。

0 件のコメント:

コメントを投稿