我有一个用C++编写的Windows DLL的源代码,并使用Visual Component Library.现在我的任务是将其移植到Linux,但我没有VCL本身的源代码或任何类型的文档(我从未使用过Borland C++;在我的Windows时代,我使用过MFC).
这应该不是那么难,因为我的DLL没有任何GUI:据我所知,它主要使用VCL进行多线程处理.我遇到了一个继承自TThread的类,这就是我遇到的问题.我在互联网上做了一些搜索,但到目前为止还没有找到VCL的文档.我想避免购买一本关于Borland C++ Builder的书,因为我没有时间等待它从亚马逊到达.我不能考虑购买Windows的软件包,因为在工作中我只有一个Linux盒子.
有什么建议?
Boost库和wxWidgets将为VCL类提供类似物.
您应该知道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论坛的某个人应该能够帮助回答这个问题.
所以有人提到的另一种选择就是使用其他一些线程库重写.