プロジェクトを開くと、「Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。」というエラーが表示される

提供: Support
移動先: 案内検索

問題

旧バージョン(例えば、Delphi 7等)で作成したプロジェクトをIDEで開くと、以下のエラーが発生することがあります。

Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。

上記のエラーメッセージは、2009以降のバージョンでUnicodeサポートに伴い、Unicodeに対応していないプロジェクトを開くと、IDE内部で呼び出しているWindows APIによって、文字コードを変更した時に上記のようなWindowsのシステムエラーが発生することがあります。

解決

本件を解決する最も簡単な方法は、 移行したいIDEのバージョン(例えば、10.3 Rio)で、VCLアプリケーションのプロジェクトを新規作成し、旧バージョンのソースファイルを (新規作成した)プロジェクトへ追加する方法です。

例えば、10.3 Rioへプロジェクトを移行する場合は、以下のような手順で行えます。

  1. 10.3 Rioで新規VCLフォームアプリケーションのプロジェクトを作成する
    (フォームは1つだけの状態で結構です)
  2. 作成したプロジェクトを任意のパスへ保存する
  3. 旧バージョンプロジェクトのソースファイルを(2)で保存したプロジェクトパスへコピーする
    例えば、コピーする対象のファイルは、Delphiの場合は、*.dfm、*.pas C++Builderの場合は、*.h、*.cpp、*.dfm
  4. 10.3 Rioのプロジェクトマネージャから、手順3.でコピーしたファイルを全て追加する

但し、この作業が完了した後、プロジェクトをビルドすると、2009以降のUnicode等を含むいくつかの問題で、そのままのコードだとエラーが発生する恐れがございます。

その場合は、誠にお手数ですが、こちらの情報を参考にしてコードを修正してください。