我如何端口代码为Borland C ++ Builder的到Linux?
-
22-08-2019 - |
题
我有被用C ++编写,并且使用可视化组件库一个Windows DLL的源代码。现在,我的任务是,为Linux的,但我没有源代码的VCL本身,或任何类型的文档的端口(我从来没有使用Borland C ++工作;在我的Windows天,我用MFC)
这不应该是那么难,因为我的DLL没有任何GUI:据我所看到的,它主要使用VCL的多线程。我跑进从TThread类继承而这正是我被困的一类。我做了一些网上的搜索,但发现没有VCL文件为止。我想,以避免对Borland的C ++ Builder中购买一本书,因为我没有时间去等待它从亚马逊到达。我可以不考虑买包的Windows,因为在工作中我只有一个Linux机器。
任何建议?
解决方案
在VCL是记录在 CodeGear的网站。的TThread特别描述此处一>
我发现在VCL的螺纹相关组件的文档是相当稀疏。 本网站有德尔福/ VCL的一个更好的说明的方法来穿线。
其他提示
在Boost库,和wxWidgets的,将提供的类似物的VCL类。
您应该知道,由C ++ Builder中使用的VCL是在Delphi / ObjectPascal完全写入。 C ++构建器应用程式都涉及C ++利用基于的Delphi-库。
在FreePascal的/拉扎勒斯开源项目已反向工程大部分VCL(几乎所有的非视觉的东西,大部分的视觉的东西)和它本身运行在Linux。非可视VCL兼容的东西被称为“自由组件库”(“FCL”) http://www.freepascal.org/ http://www.freepascal.org/fcl/fcl.var
在FCL中的TThread实现的源应该很容易找到。
一种选择是在FreePascal的,其中语言将改变到ObjectPascal但调用VCL组件的VCL和用法是几乎相同的重写。
另一个选择可能是端口C ++在Linux上并以某种方式使用FreePascal的的VCL从C ++。我不知道的是,实用性/可行性。有人在FreePascal的的论坛,应该能够帮助回答这个问题。
所以另一种选择有人提及也只是使用一些其他的线程库重写。
您可以下载自己的免费编译器,并尝试用它进行试验。它应该有可能至少在WINE运行它。甚至下的FreeDOS。
应当与在Delphi / Kylix的所述的TThread类。这是探索它另一种选择。我相信,最重要的方法已经运行()和同步(),但因为我用它它已经老化。
不过,如果您打算干净地将代码移植到Linux,它可以帮助自己重新实现的TThread类,使用一些Boost库什么的。
很多年前,Borland发布了一个版本的IDE的Linux,销售作为 Kylix的。我不知道是否仍支持它,但可能是阻力最小的路径,你。
有提供框架,如例如线程几个库升压(www.boost.org)或ACE( HTTP://www.cs。 wustl.edu/~schmidt/ACE.html )
它应该很容易地移植到使用这些线程基础架构之一的代码。