4

私のc#アプリにはプログレスバーがあります。C# アプリは、多数のファイルを処理する c++/cli dll を呼び出しています。各ファイルが dll で処理されるので、c# アプリでの進行状況を追跡したいと思います。このためには、c++/cli でイベントを発生させ、C# でそれを使用する必要があります。MSDN から収集したのは、c++/cli クラスで次のものが必要なことです。

  delegate void Del(int);
  event Del^ E;
  void fire(int i) {
      E(i);
   }

MSDN イベント

MSDN では、イベントの受信者は同じ c++/cli プロジェクトにあり、イベントを発生させる方法が示されています。私のプロジェクトでは、c# アプリは、各ファイルが処理された後に c++/cli で発生するイベントを受け取ります。私もたくさんグーグルで調べましたが、まだ理解できていません。私の質問は、c++/cli でこのイベントを発生させる方法と、C# プログラムをそれに接続する方法です。それを行う方法を示すいくつかのコードは大歓迎です。ありがとう!

マットさん、返信ありがとうございます。C#で私はしようとしています

MW.Class1 oM = new MW.Class1();
oM.fire += ProgressBarChanged(int i);

fireはメソッド群なので代入できないとコンパイルしません。私のC#プログラムには、ハンドラーもあります

public void ProgressBarChanged(int i )
{

}

コンパイラは int が予期されていないと言い、コンパイルしないが、これはうまくいく

oM.fire += new EventHandler(ProgressBarChanged(int i));
4

1 に答える 1