Makerを目指すソフト屋のブログ

旧:ハードウェア制御と車のお勉強ブログ。いろんな体験/経験を通して、エンジニアとしても人間としても成長したいと思っています。

C++Builder 10.1 Berlin Starter EditionでBCB6のプログラムを動かす

下記記事の続き。

mate-gai.hatenablog.com

 

C++ Builder使ってた、という人が少しいらっしゃって

フォームアプリ作成の容易さ(当時、MFCに比べれば楽だった)と

現在の情報量の少なさについての苦悩が共有できてうれしく思います。

 

主に今回は興味本位で「BCB6(Borland C++ Builder6)で作ったプロジェクトは、今回のC++Builderで動くのか??」ということを試してみました。

 

0. 確認 

BCB6のプロジェクトは読めるのか??

f:id:mate_gai:20160904162340p:plain

[ファイル]→[プロジェクトを開く]メニューを確認すると、

[旧 Borland プロジェクト グループ(.bpg))は選択できるようです。

 

1.BCB6でプログラムを作る。

BCB6のプロジェクトは[.bpr]という名前で作られるので

新規でプロジェクトグループを作り、その中にBCB6のプロジェクトファイル(今回はProject1.bprと命名)を含めることにしました。

 

作成したプログラムは、

ボタンをクリックしたらエディットボックスに現在日時を表示する単純なものです。

 

【ボタンクリックイベントの中身】

TDateTime dt = Now();

AnsiString as = dt.FormatString("yyyy/mm/dd hh:nn:ss");

Edit1->Text = as;

 

2. C++Builder 10.1 Berlin Starter Editionを開き、

 BCB6で作ったプロジェクトグループを読み込ませる。

 

ここでトラブル発生!

f:id:mate_gai:20160904162858p:plain

 

とりあえず、ProjectGroup1は読み込んだようなので

その下に、新規プロジェクトを追加してみました。

([VCLフォームアプリケーション]を選択)

f:id:mate_gai:20160904163452p:plain

プロジェクトができたので、その下に

BCB6で作ったソースコード(.h、.cpp、.dfm(フォーム))を追加しコンパイル

 

 f:id:mate_gai:20160904163502p:plain

 

「いまなんじ?」ボタンをクリックしたら

プログラムは現在日時を表示するようになりました。

 

4. 今回のまとめ

・BCB6で作成した[.bpr]という拡張子のプロジェクトファイルは

 サポートされていない。(なぜか?追って調べてみる)

・BCB6では、文字列"AnsiString"の使い勝手が良くて多用していた。

   今回も使用できるようだが、C++Builder 2009 から、Stringは"AnsiString"→"UnicodeString"に変わったらしい。

www.gesource.jp

 

5. もっと調べてみたいこと

…ざっと思いつくのは、こんな感じ。ほかにもいろいろ気になることは出てくると思うので少しづつ遊んで確認してみようと思います。

 

・文字列の扱い

・今回はごくごく単純なプログラムでしか確認してないけど、

実際ソフト作成時に使用するコントロール(特にグリッド)の使い勝手(イベント、プロパティ)はどんな感じか?

・重い処理(大量のデータを読ませて、グラフ等に出力する場合・・・など)の場合

.NET Frameworkを使用したフォームアプリ(C#などで開発)したものと比べたら動作は軽快なのではないか?

・BCB6で発生していた不具合(と思われる現象)は改善されているのか?

Excelファイル入出力は、BCBではOLEを使用していたが今はいい方法があるのか?