C# UI、C++/CLI 混合モード相互運用ラッパー、およびいくつかのネイティブ C++ プロジェクトで構成されるシステムがあります。
私がしなければならないことは、ネイティブの C++ コードがログ メッセージを送信でき、UI がそれを報告できるようにシステムをセットアップすることです。
これをテンプレートとして使用してネイティブ IObservable をセットアップしましたが、C# コードはオブザーバーになれません。私が考えたのは、C++/CLI で別のオブザーバー パターンをセットアップして、ネイティブ オブザーバーを監視し、C# でそれを実装できるようにすることでした。これをテンプレートとして使用しましたが、これを有効な C++/CLI に変換するのに苦労しています。
ref class Observable
{
public:
Observable(void);
virtual ~Observable(void);
event System::EventHandler^ SomethingHappened;
void DoSomething() {
System::EventHandler^ handler = SomethingHappened;
//if (handler != nullptr)
//{
handler(this, System::EventArgs::Empty);
//}//null check not permitted in C++/CLI
};
次のエラーが表示されます: C3918: SomethingHappened をデータ メンバーにする必要があります。 これは MSDN ページですが、何が間違っているのかわかりません。
助言がありますか?
ありがとう、メラニー