Visual Studio 2003 で MFCアプリケーションを作っていたが、
最近、Visual Studio 2015 でMFCアプリケーションができるのを知ってVS2015に移行することにした。
どのくらいの手間なのか、正しい手順はあるのか、Web で検索してみたが VS2003 から VS2015 への移行に参考になるサイト、ページは見つからなかった。
では、とにかくやてみるしかない。
プロジェクトは MFC を使った Visual C++ のアプリケーション。
1.Windows XP の Visual Studio Projects/・・・/project からフォルダーごと Windows 10 の Visual Studio 2015/Projects の下にコピーする。
2.フォルダー「Debug」と「Release」はビルドで生成されるので予め削除しておく。
3.VS2015 の「プロジェクトを開く...」から ~.sln を開く。
4.「プロジェクトとソリューションの変更をレビュー」の警告画面がでるので[OK]。
「.../Users/%E5%E4%A7・・・・・/Documents/ Vis...が見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。」のメッセージ。
同時にすべてのヘッダーとソースファイルが自動的に一部修正された。
5.[OK]をクリック。
6.「▶ ローカルWindowsデバッガー」でビルドを実行する。
「エラー C1189 #error: MFC does not support WINVER less than 0x501.
Please change the definition of WINVER in your project propaties or precompiled Header.」のエラー。
7.stdafx.h の以下の部分(Windowsのバージョン)をWindows 10 の値に修正する。
または、
stdafx.h を VS2015 で生成された他のプログラムのものと差し替える。
stdafx.h を差し替えた場合は、「targetver.h」も stdafx.h と同じフォルダーにコピーしておく。
8.ビルドして実行してOK。
(以下はアプリの画面)
■ ビルドでは、型名のない記述が数か所あってエラーになった。
それらは VS2003 ではエラーで引っかからなかったがVS2015では発見できたようだ。
また、警告として strcpy 、strncpy 、localtime をstrcpy_s 、strncpy_s 、localtime_s を使えと警告があったが、仕様がかなり違うのがあり、修正はかなり面倒だった。
■ 結果的に移行の手順は以下の通り。
1.移行するプロジェクトをフォルダーごとコピー。
2.フォルダー「Debug」と「Release」を削除。
3.<プロジェクト名>.sln を開く。
基本的なファイル変換が実行される。
4.stdafx.h のWindowsのバージョン部分を修正。
または、stdafx.h を VS2015 で他のプログラムで生成したものと差し替え、targetver.h も VS2015 で他のプログラムで生成したものからコピーしておく。
5.ビルドを実行。
6.警告の出た古い関数を置き換え。
■ VS2003からVS2017はこちら(2019.2.24)
以上