如何将Borland C++构建器的代码移植到Linux?

aja*_*cij 5 vcl c++builder tthread

我有一个用C++编写的Windows DLL的源代码,并使用Visual Component Library.现在我的任务是将其移植到Linux,但我没有VCL本身的源代码或任何类型的文档(我从未使用过Borland C++;在我的Windows时代,我使用过MFC).

这应该不是那么难,因为我的DLL没有任何GUI:据我所知,它主要使用VCL进行多线程处理.我遇到了一个继承自TThread的类,这就是我遇到的问题.我在互联网上做了一些搜索,但到目前为止还没有找到VCL的文档.我想避免购买一本关于Borland C++ Builder的书,因为我没有时间等待它从亚马逊到达.我不能考虑购买Windows的软件包,因为在工作中我只有一个Linux盒子.

有什么建议?

tpd*_*pdi 5

Boost库和wxWidgets将为VCL类提供类似物.


Her*_*itz 5

您应该知道C++ Builder使用的VCL完全是用Delphi/ObjectPascal编写的.c ++ builder应用程序都涉及使用基于delphi的库的c ++.

FreePascal/Lazarus开源项目已对大部分VCL(几乎所有非可视内容和大部分可视内容)进行了逆向工程,并且它在Linux上本机运行.非可视VCL兼容的东西被称为"自由组件库"("FCL") http://www.freepascal.org/ http://www.freepascal.org/fcl/fcl.var

FCL中TThread实现的来源应该很容易找到.

一种选择是在FreePascal中重写,其中语言将更改为ObjectPascal,但调用VCL并且VCL组件的使用几乎相同.

另一个选择可能是在Linux上移植到c ++,并以某种方式利用来自c ++的FreePascal的VCL.我不确定那是否具有实用性/可行性.FreePascal论坛的某个人应该能够帮助回答这个问题.

所以有人提到的另一种选择就是使用其他一些线程库重写.


Jos*_*ley 3

VCL 记录在CodeGear 的网站上。这里特别描述了 TThread 。

我发现有关 VCL 线程相关组件的文档相当稀疏。 该站点对 Delphi/VCL 线程方法有更好的描述。