我有被用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

它应该很容易地移植到使用这些线程基础架构之一的代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top