Visual Studio 2022(MSVC v143)以降,VC 6 時代のワークスペースファイル(.dsw)やプロジェクトファイル(.dsp)を直接開いてアップグレードする機能が完全に廃止されました.
最新の Visual Studio 2022 や今後登場する Visual Studio 2026 環境へレガシー資産を持ち込むには,手動でプロジェクトを再構築する手順が必要になります.本記事では,「空のプロジェクト」や「デスクトップウィザード」を利用して,過去のソースコードを現代のIDEへ安全にスライドさせるための具体的な設定手順と,ビルドエラーの回避策の備忘録です.
1. 新規プロジェクト作成による手動移行の手順
VS2022/2026を起動し,以下のいずれかの方法で「受け皿」となるプロジェクトを作成します.
■ 方法A:「空のプロジェクト」を使用する場合
- 「新しいプロジェクトの作成」から「空のプロジェクト」を選択します.
- 既存のVC 6 フォルダから
.cpp,.h,.rcなどのファイルをコピーしてプロジェクトフォルダに配置し,「既存の項目の追加」でプロジェクトに登録します. - 注意点として,ヘッダーファイル(.h)を正しく追加していないと,クラスウィザードがソースを認識できず正常に機能しません.
■ 方法B:「Windows デスクトップ ウィザード」を使用する場合(推奨)
- 「Windows デスクトップ ウィザード」を選択し,アプリケーションの種類を「デスクトップ アプリケーション (.exe)」,さらに「空のプロジェクト」にチェックを入れて作成します.
- この方法をとると,後述するサブシステム設定やプリプロセッサの定義が自動で Windows アプリ向けに最適化されるため,よりスムーズな移行が可能です.
2. ビルド成功のために必須となるプロパティ設定
手動でソースを追加しただけでは,MFCの定義不整合などで多くのエラーが発生します.以下の項目を必ず見直してください.
■ MFCおよび文字セットの設定
- 構成プロパティの「全般」にて,MFCの使用を「共有 DLL で MFC を使う」または「スタティック ライブラリで MFC を使用する」に明示的に変更します.これが設定されていないと,afx.h 関連でエラー C1189 が発生します.
■ プリプロセッサとサブシステムの修正
- プリプロセッサの定義にある
_CONSOLEを削除し,_WINDOWSを追加します. - リンカーのシステム項目にあるサブシステムを
Windows (/SUBSYSTEM:WINDOWS)に設定します.これがCONSOLEのままだと,未解決の外部シンボル(_main)エラーが発生しビルドが通りません.
■ リンクエラー(LNK2019)への対処
- プロジェクトによっては,GdiPlus 関連などでリンクエラーが発生する場合があります.その際は,リンカーの入力プロパティに追加の依存ファイルとして
GdiPlus.libを指定するか,あるいはソースコード内でライブラリのリンクを指示する記述を補足する必要があります.
3. Visual Studio 2026 での注意点と C++ 標準規格
最新の VS 2026 環境では,デフォルトの C++ 言語標準が ISO C++ 20 標準 (/std:c++20) に設定されている場合があります.
レガシーな VC 6 コードをそのまま持ち込むと,現代の非常に厳格な規格に抵触してエラーになるケースがあります.その場合は,一度「全般プロパティ」の「C++ 言語標準」を 既定 (ISO C++14 標準) に戻すことで,コードに手を加えずにビルドを通すことが可能になります.
各プロパティ設定画面のスクリーンショットと詳細解説
新規プロジェクト作成時の具体的な選択画面や,MFC設定の不整合によるエラーコードの詳細な対策,GdiPlus 関連のリンクエラー回避策,および最新の VS 2026 での検証データについては,私のブログにて画像付きで詳しく公開しています.
VS2022/2026での手動再構築手順をステップバイステップで確認したい方は,ぜひご参照ください.
詳細記事はこちら:VC6 から VC2022 , 2026 への移行 - IwaoDev