LoginSignup
2
0

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-10-29

はじめに

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 へコピーしてインストーラを実行すれば最後までエラーは出ませんでした。

2
0
0

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
  3. You can use dark theme
What you can do with signing up
2
0