6

C++ で記述され、Visual Component Library を使用する Windows DLL のソース コードがあります。今、私の仕事はそれを Linux に移植することですが、VCL 自体のソース コードもドキュメントもありません (そして、Borland C++ を使用したことはありません。Windows 時代には MFC を使用していました)。

私の DLL には GUI がないので、これはそれほど難しいことではありません。TThread を継承するクラスに出くわしましたが、そこで行き詰まってしまいました。インターネットで検索しましたが、VCL に関するドキュメントは今のところ見つかりませんでした。Amazon からの到着を待つ時間がないため、Borland C++ Builder に関する本を購入するのは避けたいと思います。仕事で Linux ボックスしか持っていないため、Windows 用のパッケージを購入することは考えられません。

助言がありますか?

4

6 に答える 6

5

C++ Builder で使用される VCL はすべて Delphi/ObjectPascal で記述されていることに注意してください。C++ ビルダー アプリはすべて、Delphi ベースのライブラリを使用する C++ を含みます。

FreePascal/Lazarus オープン ソース プロジェクトは、VCL の大部分 (ほとんどすべての非ビジュアル要素と多くのビジュアル要素) をリバース エンジニアリングし、Linux 上でネイティブに動作します。非ビジュアル VCL 互換のものは、「フリー コンポーネント ライブラリ」(「FCL」) http://www.freepascal.org/ http://www.freepascal.org/fcl/fcl.varとして知られています。

FCL の TThread 実装のソースは、簡単に見つけることができます。

1 つのオプションは、FreePascal で書き直すことです。この場合、言語は ObjectPascal に変更されますが、VCL の呼び出しと VCL コンポーネントの使用法は実質的に同じになります。

もう 1 つのオプションは、Linux 上の c++ に移植し、c++ から FreePascal の VCL を利用することです。その実用性/実現可能性についてはわかりません。FreePascal のフォーラムの誰かが、その答えを教えてくれるはずです。

したがって、誰かが言及した別のオプションは、他のスレッドライブラリを使用して書き直すことです。

于 2009-04-02T17:56:12.260 に答える
2

何年も前に、Borland はKylixとして販売されている Linux 用の IDE のバージョンをリリースしました。それがまだサポートされているかどうかはわかりませんが、それはあなたにとって最も抵抗の少ない道かもしれません.

于 2009-04-02T17:34:07.743 に答える
1

Boost(www.boost.org)やACE(http://www.cs.wustl.edu/~schmidt/ACE.html)などのスレッドのようなフレームワークを提供するライブラリがいくつかあります。

これらのスレッドインフラストラクチャの1つを使用するために、コードを移植するのはかなり簡単なはずです。

于 2009-04-06T02:47:52.767 に答える