【发布时间】:2012-01-31 22:42:23
【问题描述】:
我正在开发一个嵌入 Mono 的应用程序,我想将一个事件从 C++ 层引发到 C# 层。这是我所拥有的:
void* itr(NULL);
MonoEvent* monoEvent;
while(monoEvent= mono_class_get_events(klass, &itr))
{
if(0 == strcmp(eventName, mono_event_get_name(monoEvent)))
raiseMethod = mono_event_get_raise_method(monoEvent);
}
但是,raiseMethod 总是返回为 NULL。查看 MonoEvent 的结构,似乎填充了 add 和 remove 方法,但没有填充 raise?我需要做些什么特别的事情才能让它发挥作用吗?
编辑:如果重要的话,这里是我在 C# 层中使用的委托、类和事件的(基本)形式。
public delegate void MyHandler(uint id);
public class SimpleComponent : NativeComponent
{
public event MyHandler OnEnter;
public event MyHandler OnExit;
}
【问题讨论】: