1

この大規模なプログラムは C++ Builder で作成されており、VCL グラフィック ライブラリに大きく依存しています。多くの理由で、私はこのツールを放棄したいと考えています。移行する代替コンパイラがいくつかありますが、私はそれらのいずれにもオープンです。

私が疑問に思っているのは、実際の移植を段階的にどのように行うのでしょうか? 誰かがこれを行い、経験を共有できますか?

ステップ 1 は、GUI/VCL をアプリケーションから分離することだと思います。とにかく、プログラムはそのように設計されているはずですが、残念ながらそうではありません。それだけでも一大プロジェクトですが、その後はどこへ行くのでしょうか。VCL GUI を .dll ファイルにリンクし、それらを新しいコンパイラに含め、必要に応じて Builder から維持する必要がありますか?

4

3 に答える 3

3

あなたが言うように、プレゼンテーション層をビジネスロジックから分離することから始めます。使い慣れた C++ Builder 環境でこれを行うことから始めます。アプリケーションからビジネス ロジックを削除し、それを 1 つまたは複数の個別のモジュール (Windows では DLL) として再作成し、プレゼンテーション レイヤーを変更して、プログラムは引き続き実行されますが、これらのモジュールにアクセスするためにこれらのモジュールにアクセスします。すべてのビジネス ロジック操作。

その後、VCL を使用せずにアプリケーションを書き直すことができます。C++ に固執して別の GUI ライブラリを使用することもできます (Qt は確かにオプションの 1 つです。wxWidgets も一見の価値があります)。または、プレゼンテーション層の言語を変更することもできます (自分のスキルと好みに応じて)。

ビジネス ロジックをプレゼンテーションの外に移動することのもう 1 つの魅力は、テストがはるかに簡単になることです。

開始する前に、Michael Feathers の著書「レガシー コードを効果的に使用する」を参照することをお勧めします。彼は、この種のリファクタリングに対して優れた (そして非常にテストに基づいた) アプローチを提供します。

于 2012-10-30T11:54:46.727 に答える
3

プレゼンテーション レイヤーをビジネス ロジックから分離する必要があることに同意します。

VCL に代わる GUI フレームワークを探している場合は、Qtを検討できます。また、 UI デザイナー(C++ Builder に匹敵する)を備えた IDE も付属していますが、クロスプラットフォームであると同時にオープン ソースであるという利点もあります。

于 2012-10-30T10:12:15.720 に答える
2

私もかつて同じ状況でしたMFC。私のアドバイスは、ゼロから始めて、古いコードから再利用できるものは何でも再利用することです。今回はプレゼンテーションをロジックで台無しにしないでください。;)

于 2012-10-30T11:22:16.547 に答える