プロジェクトを開くと、「Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。」というエラーが表示される
問題
旧バージョン(例えば、Delphi 7等)で作成したプロジェクトをIDEで開くと、以下のエラーが発生することがあります。
Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。
上記のエラーメッセージは、2009以降のバージョンでUnicodeサポートに伴い、Unicodeに対応していないプロジェクトを開くと、IDE内部で呼び出しているWindows APIによって、文字コードを変更した時に上記のようなWindowsのシステムエラーが発生することがあります。
解決
本件を解決する最も簡単な方法は、 移行したいIDEのバージョン(例えば、10.3 Rio)で、VCLアプリケーションのプロジェクトを新規作成し、旧バージョンのソースファイルを (新規作成した)プロジェクトへ追加する方法です。
例えば、10.3 Rioへプロジェクトを移行する場合は、以下のような手順で行えます。
- 10.3 Rioで新規VCLフォームアプリケーションのプロジェクトを作成する
- (フォームは1つだけの状態で結構です)
- 作成したプロジェクトを任意のパスへ保存する
- 旧バージョンプロジェクトのソースファイルを(2)で保存したプロジェクトパスへコピーする
- 例えば、コピーする対象のファイルは、Delphiの場合は、*.dfm、*.pas C++Builderの場合は、*.h、*.cpp、*.dfm
- 10.3 Rioのプロジェクトマネージャから、手順3.でコピーしたファイルを全て追加する
但し、この作業が完了した後、プロジェクトをビルドすると、2009以降のUnicode等を含むいくつかの問題で、そのままのコードだとエラーが発生する恐れがございます。
その場合は、誠にお手数ですが、こちらの情報を参考にしてコードを修正してください。