我有一个包含 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 页面- 但我无法确定我做错了什么。
有什么建议么?
谢谢,梅兰妮