0

我有用 Borland C++ 编写的 USB 通信源代码(“USBThread 类”),并使用 Visual Component Library(“vcl.h”)。现在我的任务是将它移植到 Visual C++,因为我们没有购买 Borland C++。

但是这个“USBThread 类”继承自“vcl.h”中的一个基类,称为“TThread”。

请问,在Visual C++中,我可以用什么样的基类来代替“TThread”作为新的继承源?

原始代码使用了TThread 来的“WaitFor”和“Terminate”方法,我不知道如何用Visual C++ 实现这两种方法。

谢谢!

4

2 回答 2

0

尽管您可以将 VCL 的TThread类翻译成 C++,但它不会很好地工作,因为它依赖于一些根本不翻译成 C++ 的 Delphi 语义(特别是TObject::AfterConstruction()方法)。您最好简单地重写 USBThread 以直接使用 Win32 线程函数,CreateThread()WaitForSingleObject(). 对于Terminate(),您只需在bool某个地方设置一个标志,您的线程过程可以定期查看并在设置为 true 时停止其工作。

于 2012-05-02T22:14:59.330 回答
0

这可能是一个困难的练习 imo,但它看起来像Boost.Thread使用joinforWaitForinterruptforTerminate会让你开始。

我基于对此处找到的 VCL 文档的审查。我说这可能很困难,因为 VCL 可能具有未记录或其他意外的行为。

于 2012-04-24T14:50:32.037 回答