はじめに
タイトル長ぇな、オイ。
2 年前の 2020年2月14日に Delphi が 25 周年を迎えて、Delphi 1.0 Client/Server (英語版) がアンティークソフトウェアとして無償公開されました。
- Delphi 1.0 Client/Server が無償公開されたので Windows 7 の XP Mode にインストールしてみる (Qiita)
- Delphi 1.0 Client/Server が無償公開されたので Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
今回、C++ Builder 25 周年を迎えた 2022年2月26日に C++ Builder 1.0 Client/Server (英語版) がアンティークソフトウェアとして無償公開されました。
インストール
インストール要件は次の通りです。
項目 | 備考 |
---|---|
CPU | Intel 486 以上の CPU |
OS | Windows 95 または Windows NT (3.51 または 4.0) |
メモリ | 16MB 以上の拡張メモリ (24MB 以上を推奨) |
HDD | 80~175MB 以上のハードディスク (C/S は 195MB 以上) |
その他 | CD-ROM ドライブまたは 3.5" フロッピードライブ |
C++ Builder 1 C/S のインストーラは Install Shield 3 で作られており、16bit アプリケーションです。
つまり、C++ Builder 1 そのものは 32bit アプリケーションであるにもかかわらず、インストーラの制限によって 64bit Windows へはインストールできません。
See also:
対処方法
■ 32bit Windows へインストールして持ってくる
VM 等の 32bit Windows へ一旦インストールし、ファイルを 64bit Windows へ持ってくる方法です。OS の種類によってはインストールの際に NTVDM が別途インストールされるかもしれません。
NTVDM は [Windows の機能の有効化または無効化]
から手動でインストールする事もできます。
[Windows の機能の有効化または無効化]
は [ファイル名を指定して実行 (〔Win〕+〔R〕)]
から optionalfeatures.exe
を実行する事で素早く開く事ができます。
NTVDM
は レガシ コンポーネント
の中にあります。
レジストリも収集する必要がありますが、32bit Windows のレジストリをそのまま 64bit Windows に持ってきても動作しないかもしれません。
See also:
■ RUNIMAGE を使う
アーカイブ内の IMAGE
にはセットアップされた状態のファイルが格納されています。
レジストリについては自前で処理しなければなりません。
■ Is3Engine.zip を使う
インストーラが Install Shield 3 の場合には回避方法があるようです。
以下のサイトから Is3Engine.zip
をダウンロードしてきます。
- Installing 32-bit programs with 16-bit setup launcher stubs (ReactOS Forum)
- Is3Engine.zip への直接リンク (toastytech.com)
うまく DL できない場合には、Is3Engine.zip の URL をブラウザのアドレスバーに直接入力してみてください。
これを解凍してできた setup32.exe
を C++ Builder 1 解凍フォルダ内の SETUP\CBUILDER
フォルダに置いて実行します (SETUP.EXE
と setup32.exe
を同じ場所に置いて実行)。
Is3Engine.zip を使う (検証)
続いて、Windows 11 の Windows Sandbox を使ってインストールを検証してみました。
C++ Builder 1 C/S のアーカイブを解凍したものと、Is3Engine.zip を解凍してできた setup32.exe
をサンドボックスに持ってきます。そして先述の通り、SETUP.EXE
と setup32.exe
を同じ場所に置きます。
setup32.exe
のショートカットを作り [互換性] タブで Windows 98 / Windows Me
に変更し、さらに管理者権限で実行するようにして、このショートカットを実行します。
以降、特に指定のない画面では [Next] ボタンを押して先に進めてください。
次の画面で Custom
セットアップを選びます。
次の画面で C++ Builder
を選択し、[Options]
ボタンを押下します。
次の画面でリストの下から 2 番目にある Help Files
のチェックを外します。
元の画面に戻って [Next]
ボタンを押下します。
次の画面で [Browse]
ボタンを押下します。
Path:
に C:\Borland
と入力します。64bit 環境だと初期パスがおかしくなるようです。%ProgramFiles%
の認識もアヤしいので、C:\Borland
のようなフォルダにインストールする事をオススメします。
パスが存在しないと言われますが、[Yes]
を押してそのまま続行します。
パスが正しくなりました。
インストールが開始されます。
BDE が設定できなかった旨のエラーは出ましたが、インストーラは完走しました。
メニューに登録されたりはしないので、C:\Borland\CBuilder\BIN
にある BCB.EXE を実行します。
C++ Builder 1 が起動しました。
※ C++ Builder 1 の BDE はバージョン 3.0 です。多くの場合、付属の BDE が正しくインストールできなくても問題ない気がします。
ヘルプファイルの処理
インストーラのオプションでヘルプファイルをインストール対象から除外したのは、そのままだとインストールの途中でエラーになるからです。
そもそも Windows 10 / 11 の場合、そのままだと WinHelp を表示できないので、インストールされなかったヘルプファイルは無視していいのですが、気になる方は、アーカイブを解凍した中の IMAGE\BORLAND\CBUILDER\HELP
にあるヘルプファイルを C:\Borland\CBuilder\Help
に手動でコピーしてください。
エラーの内容だと、C:\Windows 以下に何かのヘルプファイルを保存しようとしてエラーになっている感じですが、C:\Windows\SysWOW64 にはすべてのヘルプファイルがコピーされています。
See also:
OpenHelp
OpenHelp もインストールされないようなので、アーカイブを解凍した中の IMAGE\COMMON\BORLAND\OPENHELP
を C:\Borland\OPENHELP
に手動でコピーしてください。
ショートカット
インストーラでショートカットが作られなかった環境で使えるショートカットを用意しました。C:\ProgramData\Microsoft\Windows\Start Menu\Programs\
と %APPDATA%\Microsoft\Windows\Start Menu\Programs\
にコピーしてお使いください。
C++ Builder 1 を Delphi 2 相当として使う
C++ Builder には Delphi コンパイラが含まれるため Delphi として使う事もできなくはありません。
...なのですが、C++ Builder 1 では Pascal のフォームをデザイナで編集できないのと、フォームファイルがバイナリ形式であるため、最近の C++ Builder みたいな事はできません。
フォームファイルは C++ Builder でユニットを作成して保存すれば作られるため、次のような Pascal (Delphi) ユニットを作れば、コンポーネントの動的作成によるなんちゃって Delphi は達成できます。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
フォームに関する事はフォームデザイナのコンテキストメニューで View as Text
を選択し、その中で貼り付ければコンポーネントの作成もやれない事はないです。C++ フォームでデザインして、それを View as Text
で Pascal フォームへ貼り付けて...
つまりは、そのような...とても涙ぐましい努力をしなければならないので、C++ Builder 1 は素直に C++ として使うのがいいと思います。Delphi 2.0 があれば、そちらで作ったユニットを混在できるのですが...。
See also:
コマンドラインコンパイラなら...
コマンドラインコンパイラを使って、Object Pascal の学習用環境を作ってみます。
C:\DELPHI
というフォルダの下に次に示すサブフォルダを作成し、C++ Builder 1 C/S のアーカイブを解凍したフォルダからファイルを持ってきます。
ローカルフォルダ | アーカイブ |
---|---|
BIN | IMAGE\BORLAND\CBUILDER\BIN から DCC32.EXE と RLINK32.DLL ※ GREP.EXE や TOUCH.EXE もコピーしてくるといいかも。面倒だったらフォルダの中をすべてコピー。 |
LIB | IMAGE\BORLAND\CBUILDER\LIB\OBJ の中をすべて |
SOURCE (任意) |
IMAGE\BORLAND\CBUILDER\SOURCE\TOOLSAPI IMAGE\BORLAND\CBUILDER\SOURCE\VCL をフォルダごと |
C:\DELPHI
├─BIN
│ DCC32.EXE
│ RLINK32.DLL
├─LIB
│ *.DCU 他
└─SOURCE
├─TOOLSAPI
│ *.pas 他
└─VCL
*.pas 他
BIN
フォルダに DCC32.CFG
というファイルを作ります。
-U"C:\DELPHI\LIB"
これで、コマンドラインからコンパイルできます。
program Hello(Output);
begin
Writeln('Hello, world.');
end.
hello.dpr
をコンパイルしてみます。コンソールアプリケーションなので -CC
オプションが必要です。
C:\DELPHI\BIN>dcc32 -cc hello.dpr
Delphi for Win32 Version 9.3 Copyright (c) 1983,97 Borland International
hello.dpr(1)
2 lines, 0.00 seconds, 3324 bytes code, 1241 bytes data.
C:\DELPHI\BIN>hello
Hello, world.
P_IDE を使うと、より簡単にコマンドラインコンパイラを扱えます。
C++Builder 1 (Delphi 2.0 相当) の Delphi コンパイラはかなり古く、動的配列すら使えないシロモノですが、インストーラを実行せずに使える Object Pascal コンパイラが無償で入手可能になった点は歓迎すべき事だと思います。
...何のしがらみもなければ、普通に Delphi Comunity Edition で学習すればいいんですけどね。
See also:
おわりに
今までにやった Delphi / C++ Builder インストールの知識を総動員したような記事になってしまいました。なんとか C++ Builder 1 C/S が 64bit Windows で動作するようになってホッとしました。
今年で C++ Builder 25 周年です。25 周年記念サイトや、記念 Blog 記事があったりしてなかなか盛り上がっているようです。
See also:
- C++ Builder 25 周年記念サイト (25.cppbuilder.dev)
- Celebrating 25 Years of C++Builder! (blogs.embarcadero.com)
- C++Builder – リリースから25年! (blogs.embarcadero.com)
- Turbo Pascal 1.0 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
- Turbo Pascal 3.02 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
- Turbo Pascal 5.5 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
- Turbo C 2.01 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
- Turbo C++ 1.01 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
- Delphi 1.0 Client/Server を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)