LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

Delphi 2 ~ 3.1 は 32bit アプリケーションだけどインストーラが 16bit アプリケーションなせいで 64bit Windows へインストールできない件をどうにかする

はじめに

Delphi 2 ~ 3.1 のインストーラは Install Shield 3 で作られており、16bit アプリケーションです。

つまり、Delphi 2 ~ 3.1 そのものは 32bit アプリケーションであるにもかかわらず、インストーラの制限によって 64bit Windows へはインストールできません。

対処方法

■ 32bit Windows へインストールして持ってくる

VM 等の 32bit Windows へ一旦インストールし、ファイルを 64bit Windows へ持ってくる方法です。OS の種類によってはインストールの際に NTVDM が別途インストールされるかもしれません。

NTVDM は [Windows の機能の有効化または無効化] から手動でインストールする事もできます。
[Windows の機能の有効化または無効化][ファイル名を指定して実行 (〔Win〕+〔R〕)] から optionalfeatures.exe を実行する事で素早く開く事ができます。
image.png
NTVDMレガシ コンポーネント の中にあります。
image.png
レジストリも収集する必要がありますが、32bit Windows のレジストリをそのまま 64bit Windows に持ってきても動作しないかもしれません。

See also:

■ RUNIMAGE を使う

CD-ROM 内の RUNIMAGE にはセットアップされた状態のファイルが格納されています。
image.png
レジストリについては自前で処理しなければなりません。

■ Is3Engine.zip を使う

インストーラが Install Shield 3 の場合には回避方法があるようです。
以下のサイトから Is3Engine.zip をダウンロードしてきます。

うまく DL できない場合には、Is3Engine.zip の URL をブラウザのアドレスバーに直接入力してみてください。

これを解凍してできた setup32.exe をセットアップ CD-ROM 内の INSTALL フォルダに置いて実行します (SETUP.EXEsetup32.exe を同じ場所に置いて実行)。
image.png

もちろんセットアップ CD-ROM に書き込む事はできないので、ローカルにコピーするなり、再度 CD-R に焼くなりします。

setup32.exe を実行してしばらくするとインストーラが起動します。
image.png
image.png
Windows 10 (64bit) でインストーラを実行できました。

■ Is3Engine.zip を使う (検証)

続いて、Windows 11 の Windows Sandbox を使ってインストールを検証してみました。

・Delphi 2

そのままだと OC30.DLL のエラーでインストールが完了しませんでした。
image.png
setup32.exe のショートカットを作り [互換性] タブで Windows 98 / Windows Me に変更し、このショートカットを実行します。
image.png
BDE が設定できなかった旨のエラーは出ましたが、インストーラは完走しました。
image.png
image.png
※ Delphi 2 の BDE はバージョン 3.0 です。多くの場合、付属の BDE が正しくインストールできなくても問題ない気がします 1

・Delphi 3

そのままだと最後に MFC40.DLL / OC30.DLL のエラーが出てしまいます (インストーラは完走します)2
image.png
setup32.exe のショートカットを作り [互換性] タブで Windows 98 / Windows Me に変更し、このショートカットを実行します。
image.png
BDE が設定できなかった旨のエラーは出ましたが、インストーラは完走しました。
image.png
image.png
※ Delphi 3 の BDE はバージョン 4.0、Delphi 3.1 の BDE はバージョン 4.1 です。多くの場合、付属の BDE が正しくインストールできなくても問題ない気がします 1

おわりに

インストーラ全般の話になりますが、インストーラが 16bit アプリケーションの場合には、ファイルのプロパティの [詳細] タブを確認してみましょう。Install Shield 3 で作られていればチャンスはあります。
image.png
インストールされたアプリケーションが 16bit アプリケーションであった場合には OTVDM を使えば動作するかもしれません。

See also:

  1. BDE (Borland Database Engine) の最新版は Delphi 6 以降にバンドルされた バージョン 5.2 です。BDE は同時に異なるバージョンをインストールして使用することができません。インストール時に異なるディレクトリを指定したとしても、BDE の構造上古いバージョンと共存することはできず、必ず最後にインストールされたバージョンが使われます。 2

  2. 事前にインストール CD-ROM 内の RUNIMAGE\WINDOWS\SYSTEM32 にある MFC40.DLLOC30.DLLC:\Windows\System32 および C:\Windows\SysWow64 へコピーしてインストーラを実行すれば最後までエラーは出ませんでした。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0