VC6 から Visual Studio 2015 C++ への移行メモ
HOME  
☆ はじめに
☆ プロジェクトの設定
☆ ビルド(コンパイルとリンク)
☆ その他
☆ このTipsについて

 はじめに

C(C++)で記述したプログラムの開発環境を Microsoft Visual Studio 6.0 から Microsoft Visual Studio 2015 に移行したときのノウハウです。ビルドするプログラムはMFCを使用しない Windows プログラム(SDK)です。

 プロジェクトの設定

プロジェクトの設定でデフォルト値を変更する箇所は下の表の4項です。

手順作業記事
「新しいプロジェクト」で「Visual C++」の「Win32 プロジェクト」を選択して、「名前」と「場所」(プロジェクト
を置くフォルダ)を設定する。
「名前」と「場所」は任意
「名前」のデフォルトは「Win32Project1」 
「Win32 アプリケーションウィザード」で「空のプロジェクト」にチェックを入れる。 
プロジェクトにソースを追加 する。ソースの追加はプロジェクトのプロパティを設定する前に行う。※1
プロジェクトのプロパティを以下のように変更する。 
4−1 「構成プロパティ」 -> 「全般」
 -> 「文字セット」を「マルチバイト文字セットを使用する」に変更する。
 -> 「ターゲット名」を foo に変更する。
 -> 「プラットフォームツールセット」を「Visual Studio 2015 - Windows XP (v140_XP)」に変更する。
 
※2
foo はプログラム名(任意の名前)
※3
4−2 「構成プロパティ」 -> 「C/C++」
 -> 「コード生成」 -> 「ランタイムライブラリ」を「マルチスレッド (/MT)」に変更する。
 -> 「全般」 -> 「SDLチェック」を「いいえ」に変更する。
 -> 「詳細設定」 -> 「指定の警告を無効にする」に「4996」を登録する。
 
※4
sprintf() や strcpy() 等を使用している場合
sprintf() や strcpy() 等を使用している場合

※1 「構成プロパティ」の 「C/C++」 タブはソースファイルを追加した後でないと表示されない。
  ソース、ヘッダ、リソースファイルの追加は「プロジェクト」 -> 「既存の項目の追加」 または ソリューションエクスプローラーで行う。
※2 「マルチバイト文字」にしないとビルド時、コンパイルエラーが発生する。(デフォルトは「Unicode文字セットを使用する」)
※3 ビルドしたプログラムを Windows XP で実行すると「foo.exe は有効な Win32 アプリケーションではありません。」となり動かない。(デフォルトは「Visual Studio 2015 (v140)」)
※4 ビルドしたプログラムを開発環境がインストールされてないパソコンで実行すると「VCRUNTIME140.dll がないため、プログラムを開始できません。・・・・」となり動かない。(デフォルトは「マルチスレッド DLL (/MD)」)

 ビルド(コンパイルとリンク)

以上により準備したプロジェクトを Visual Studio 2015 でビルドする手順は以下のとおりです。

1.ビルド。(「ビルド」 -> 「・・・ のビルド」。・・・ はプロジェクト名)
2.リンク時に「外部シンボル・・・は未解決です」エラーのときはプロジェクトに不足のライブラリを追加する。(「構成プロパティ」 -> 「リンカー」 -> 「入力」 -> 「追加の依存ファイル」)

以上でビルドが完了すれば、プログラムは問題なく動作します。

 その他

Visual Studio 6.0 から Visual Studio 2015 に移行の際に気づいたことは、以下のとおりです。

1.COM 関係のコーディング箇所でキャスティングの追加、変更が必要になることがある。
2.CSIDL_COMMON_APPDATA 等は shlobj.h をインクルードすれば問題なく使用できるようになった。
3.shlwapi.h は問題なくインクルードできるようになった。

 このTipsについて

このTipsは Visual Studio 2015 C++ で確認を行っていますが、GARAさんの知識や理解の不足による誤りがあるかもしれません。このためTipsの使用により万一損害が生じましても責任を負いかねますのでご了承ください。また、誤りや記述ミスにお気付きの場合はメールでご連絡いただければ幸いです。


HOME