私の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 では、イベントの受信者は同じ 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));