C++ Builder Community Editionを使ってみる ~ 以前のプロジェクトを生かすには?
2022年5月19日
前回、C++ Builder1の紹介をしました。
しかし、C++ Builder1はWindows9x系でしか動作しないため、他を探すとC++ Builder Community Editionが見つかりました。早速、インストールしてみました。
1.C++ Builder Community Editionのダウンロード
C++ Builder Community Editionは、以下からダウンロードできます。
指示に従ってダウンロードしてください。表示されたメッセージを適当に読んで処理すると、体験版がダウンロードされたりしますから、注意してください。
また、OSはWindowsだけでなくiOSやAndroidも選択できますが、今回はWindowsで進めます。
2.インストーラーの起動
ダウンロード先にRADStudio-xxxxx.exeというインストーラーがありますので、起動します。あとは、指示通りに進めてください。
インストールには、EMBARCADEROへのユーザ登録が必要になります。私の場合は、Borland時代のユーザ登録がそのまま使えました。
3.起動してみる
起動してみます。特に何事もなく、IDEが立ち上がりました。使い方のチュートリアルが、いろいろ用意されています。まったくC++ Builderに触れたことがない人は、見ることをお勧めします。
私は、早速、以前に作ったプロジェクトをロードしてみます。
4.以前に作ったプロジェクトをロードしてみる
Windows Vistaまで動作していたプロジェクトをロードします。ロードするプログラムは、私のオンラインソフトでは2番目に好評を頂いたVerticalWriterです。早速、ロードすると
やはり、そのままは使えません。コンバートしてくれると思ったのですが、駄目なようです。一から作り直しは、さすがにできません。それで、調べると
EMBARCADEROのサイトに対処法が掲載されています。一から作り直すよりはマシなので、やってみます。
と、VerticalWriterのコンバートを始めたのですが、VerticalWriterが結構複雑かつ現在存在しないサービスを使用しているため、簡単にコンバートができないことが分かりました。C++ Builderの特徴にコンポーネントがありますが、自作のコンポーネントが複数あることを忘れていました。
そしてビルドしてみると、型がない、型が合わない、型変換に失敗が爆発的に出ました。VerticalWriterは、C標準ライブラリやWindows APIレベルの特有な型を使っています。また、致命的なのは、S-JISベースで処理していて、1バイト文字、2バイト文字で計算をしているので、Unicode時代の今では、適合できなくなっていました。
このように、VerticalWriterを動作させるのは、暇を見て作ることによる、ずっと先のことになります。もう一つの私の代表作、JDTPも、同様の問題を抱えています。
5.簡単なプログラムを動かしてみる
でも、動くプログラムを見たいので、ディレクトリ選択ダイアログを作ってみました。
新規にプロジェクトを作成します。Windowsのフォームアプリケーションは、「Windows VCL アプリケーション」を選択します。
立ち上がったら、まずはフォームを作成します。フォームが表示されていなかったら、「フォーム名.dfm」をダブルクリックしてください。
そして、フォーム上にコントロールを貼り付けていきます。パレットから貼り付けたいコントロールを選び、フォーム上にドラッグ&ドロップします。
今回貼り付けたのは、TDriveCombobox、TDirectoryListBox、TEditです。この操作性の良さは、感激です。BDS2006よりも軽快で良くなってますね。
それでは、コントロールに対してコードを記述します。コントロールを選択して、オブジェクトインスペクタのイベントタブを選択して、OnChangeの位置でダブルクリックします。すると、イベントを処理する関数が自動的に作成されます。その関数内に、処理させるコードを書き込みます。
このように、コントロールに対して処理を書き込むといった操作が、当時は画期的でした。最終的には、以下のコードとなりました。
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
DriveComboBox1->DirList = NULL ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DriveComboBox1Change(TObject *Sender)
{
BOOL retry = TRUE;
while (retry)
{
try
{
DirectoryListBox1->Drive = DriveComboBox1->Drive;
retry = FALSE;
Edit1->Text = DirectoryListBox1->Directory ;
}
catch(EInOutError *e)
{
// nop
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DirectoryListBox1Change(TObject *Sender)
{
Edit1->Text = DirectoryListBox1->Directory ;
}
//---------------------------------------------------------------------------
ビルドしてみます。
無事、ビルドできました。実行してみましょう。
問題なく動作します。こんなに簡単にプログラムが出来てしまいます。
当時はプログラムをする人も多かったです。パソコン雑誌にDelphiのプログラム記事が結構載っていたものです。
スマートフォンのプログラムは、とても誰でも作成できるとは言えません。Windowsとスマートフォンの違いはあるとは言え、今の開発ツールは難解すぎます。
6.iOSやAndroidのプログラム作成も面白そう
C++ Builderでは、Windowsのアプリケーションだけでなく、iOSやAndroidのアプリケーションも作成できるようです。Android Studioの状況を考えるとC++ Builderでは問題が多発しそうな気もしますが、機種依存のないプログラム開発ができそうです。
C++ Builder。今後も生き残って欲しいですね。
関連記事
C++ Builder 1 フリー提供されています ~ 歴代の開発ツールを振り返る
2022年5月のある日。昔のWindows時代は良かったなあと考えている時に、そ ...
プログラムの話 メモリーのアドレス
パソコンを購入する時に、メモリーの容量は大事な判断材料です。そのメモリーの構造に ...
Windowsのプロジェクトをダウンロードしてビルドする時に出る署名エラー
ある処理をしたくて、該当するWindowsアプリケーションを使ってみたのですが、 ...
Visual Studio 2022をアップデートしたら古いプロジェクトでエラー LNK1104 発生!
Visual Studio 2022 Community でアップデートの通知( ...
Windowsタスクマネージャー ~ 動作が遅い時にチェックしよう!
Windowsを使用していると、自分が動作させているアプリケーションの負荷は小さ ...