【发布时间】:2013-04-03 05:01:47
【问题描述】:
我有一个由 C# UI、C++/CLI 混合模式互操作包装器和一些原生 c++ 项目组成的系统。
我需要做的是建立一个系统,让原生 c++ 代码可以发送日志消息,并且 UI 可以报告它。
我使用this 作为模板设置了本机 IObservable,但是 C# 代码不能成为观察者。我的想法是在 C++/CLI 中设置另一个观察者模式,它观察本地观察者,并让 C# 实现它。我使用this 作为模板,但我正在努力将其转换为有效的 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 是数据成员。 This is the MSDN page - 但我无法确定我做错了什么。
有什么建议吗?
谢谢, 梅兰妮
【问题讨论】:
标签: c++-cli observer-pattern mixed-mode