質問: visual studio 2010 professional で動いたMFCアプリが、 visual studio 2013 professionalでビルドおよびコンパイルできません。 c++初心者です。 普段は2010を使用していて、それで動いたプログラムが2013で動きません。 ちなみに2013のprofessionalは試用期間です。 あるMFCアプリを動かしたいのですが、2013の方でビルドおよびコンパイルができなくて困っています。 以下のエラーが出てビルドできません。 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. 2010ではマルチバイト文字使用だったので今回もそうしたのですが... ちなみに2013のでユニコード文字にするとchar型が使えないなどの大量のエラーが出ます。 またコンパイルしようとするとmfc100d.dllが無くてコンパイルできないというエラーが出ます。 2010で動いたものが2013で動かないということはどこがおかしいのでしょうか。 プロジェクトプロパティは2010の方で設定されているものと同じようになるようにひとつひとつ確認したのですが... どこかの設定を見落としているのでしょうか。 基礎知識が欠けている部分が多くありますが、 ご教授お願い致します。
回答: いつかはそうなると思っていましたが、ついにその時が来たか...って感じですね。 このまえ Visual Studio 2013 をインストールしておいたので、早速試してみました。プロジェクトの新規作成で MFC アプリケーションを選択してビルド。正常に動作することを確認して、Unicode から MBCS に変更し、再ビルド。 ここで、ご指摘のエラーが出ます。やはり。 さて、二つの可能性があると思います。 (1)このまま MFC では 非Unicode はサポートされない。MBCS を使っていた人は、Unicode 対応を迫られることに、...。 (2)マイクロソフト社が思い直して MFC の 非Unicode サポートを追加する。MBCS を使っていた人は、これで救われる(?) MFC という特殊要因がありますよね。MFC をいつ捨てるのかなと思っていたら、逆にかなり進化していましたよ。期待できそうです。でも、非Unicode 対応の苦労は勘弁してね...という意味じゃないですか? 個人的には、MBCS を使い続けるのはもう限界かと思っていましたので、MSB8031 エラーは、そんなに意外ではありません。なので、非Unicodeの選択肢は MFC には無いと思うべきかも。