2012-04-24 10 views
0

私は、Borland C++で書かれたUSB通信用のソースコード( "USBThread class")を持っており、Visual Component Library( "vcl.h")を使用しています。 私の仕事は、Borland C++を購入しなかったので、Visual C++に移植することです。TThreadの代わりになるもの

しかし、この "USBThreadクラス"は "vcl.h"の基本クラス( "TThread")からの継承を持っています。

私は、私が代わりに使用できるベースクラスのどのような種類は、Visual C++で、聞いても「新しい相続・ソースとして」のTThreadを?

元のコードが使用する 『WAITFORを』と 『』のTThread、 来る方法を終了私は、Visual Cの++でこれら2 menthodsを実装する方法を知りません。

ありがとう!

+0

それは依存します。この交換クラスで何をする必要がありますか? –

+0

Visual C++で "WaitFor"メソッドと "Terminate"メソッドを実装したいのですが、これらの2つのメソッドは、Borland C++のTThreadから継承します。 – user1352716

+0

あなたは 'TThread'のソースコードを持っていないと思いますか?私はVisual C++にスレッドの便利なクラスがあるとは思わないので、Win32 APIのスレッド関数を直接使用するだけで済みます。 –

答えて

0

これは芋難しいexericeである可能性が高いが、それはためWaitForためjoininterruptを使用してBoost.Threadのように見えますはあなたを始めます。

これは、docs for VCL found hereのレビューに基づいています。 VCLは文書化されていない、あるいは予期しない動作をする可能性があるため、これは難しいと言います。

0

あなたがC++にVCLのTThreadクラスを変換できますが、それは単純にすべての(特にTObject::AfterConstruction()法)でC++に変換していないいくつかのDelphiのセマンティクスに依存しているので、それは非常にうまく機能しないでしょう。 Win32スレッド関数を直接使用するためには、USBThreadを直接書き直すだけです。すなわち、CreateThread()WaitForSingleObject()です。 Terminate()の場合は、スレッドプロシージャが定期的に調べてtrueに設定されているときに作業を停止できるように、boolフラグを設定するだけです。

関連する問題