コードを c++ に簡単に移植するには、 c#イベントの代わりに何を使用すればよいですか?
あなたが考えていることがeventにのみ関連していると確信しているなら、変更を加える必要はないと思います。
目標に到達するeventの基礎となるクラスを作成するだけです。
いろいろなやり方があるかもしれません。最初のステップは、CALLBACK について考えることです。
ここでは、たとえば、P-invoke を介して c++ コールバックを呼び出し、c# でデリゲートにラップするコードをいくつか提供します。
コールバックをインポートします。
[DllImport("devlink.dll")]
static extern int DLRegisterType2CallDeltas(uint pbxh,DLCALLLOGEVENT cb);
デリゲートを定義します。
public delegate void DLCALLLOGEVENT(uint pbxh, StringBuilder info);
イベントを宣言します。
public event EventHandler<CallLogEventArgs> CallLogEvent;
呼び出すイベントをラップします。
DLRegisterType2CallDeltas(
pbxHandle,
(pbxh, info) => {
lock(thisLock)
if(
default(EventHandler<CallLogEventArgs>)!=CallLogEvent
&&
pbxHandle==pbxh
)
CallLogEvent(this, new CallLogEventArgs(info));
}
);
C ++で逆/反転する必要があります。しかし、まず第一に、イベントまたはデリゲートのクラスを実装すると、要求したことの実行に近づくことができます。