Visual Studio 2005 で作成したMFCのダイアログベースのアプリをプロジェクトを Visual Studio Community 2013 で読み込んで再ビルドしてみます。
Visual Studio Community 2013 を起動してソリューションファイル (*.sln) かプロジェクトファイル (*.vcproj) を開いてプロジェクトを読み込むとプロジェクトのアップグレードが行われます。移行レポートが表示されてソリューションおよびプロジェクトに関してエラー、警告、メッセージが表示されますが、このプロジェクトではエラーがないのでとりあえず無視してビルドに進みます。
ビルドすると:
error MSB8031: Building an MFC project for a non-Unicode character set is deprecated.
You must change the project property to Unicode or download an additional library.
See https://go.microsoft.com/fwlink/p/?LinkId=286820 for more information.
というエラーがでました。
要約すると、「非 Unicode 文字セットの MFCプロジェクトのビルドは推奨されなくなったので、プロジェクト プロパティを変更するか追加のライブラリをダウンロードしなければならない。詳細は、https://go.microsoft.com/fwlink/p/?LinkId=286820 をみてください。」ということです。
そこで、そのページを見ると、「マルチバイト文字エンコード (MBCS) 用の MFC ライブラリ (DLL) は、Visual Studio に含まれなくなりましたが、Visual Studio Professional、Visual Studio Premium、または Visual Studio Ultimate がインストールされているコンピューターにダウンロードしてインストールできるアドオンとして利用できます」とのことです。
上記「MFC MBCS DLL アドオン」ページから:
- マイクロソフト ダウンロード センターの「Visual Studio 2013 のマルチバイト MFC ライブラリ」をクリック
- Multibyte MFC Library for Visual Studio 2013 ページの Select Language: から Japanese を選択すると日本語に切り替わります
- [ダウンロード] ボタンをクリック
- vc_mbcsmfc.exe を保存して、実行
インストールが完了して再ビルドすると、下記の警告が表示されますが、実行には問題なくなりました。
warning C4996: 'MBCS_Support_Deprecated_In_MFC': MBCS support in MFC is deprecated and may be removed in a future version of MFC.
Visual Studio で作成するアプリは Unicode 版がデフォルトになったんですね。
それは良いのですが、既存のアプリを Unicode 版に移行するのも大変なので、当面は 「Visual Studio 2013 のマルチバイト MFC ライブラリ 」も必要ですね。
Visual Studio 2013 の Visual C++ 再頒布可能パッケージ もアプリの配布には必要になる場合があります。