मैं एक ऐसे अनुप्रयोग पर काम कर रहा हूं जो मोनो एम्बेड कर रहा है, और मैं सी ++ परत से सी # परत में एक ईवेंट को उठाना चाहता हूं। यहां मेरे पास है:एंबेडेड मोनो: आप 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);
}
हालांकि, raise विधि हमेशा वापस के रूप में वापस आती है। मोनोइवेंट की संरचना को देखते हुए, ऐसा लगता है कि जोड़ने और हटाने के तरीकों को पॉप्युलेट किया गया था, लेकिन raise नहीं? क्या यह काम करने के लिए मुझे कुछ खास करना है?
संपादित करें: यदि यह महत्वपूर्ण है, तो यहां प्रतिनिधि, वर्ग और घटनाओं का मूल (मूल) रूप है जो मैं सी # परत में उपयोग कर रहा हूं।
public delegate void MyHandler(uint id);
public class SimpleComponent : NativeComponent
{
public event MyHandler OnEnter;
public event MyHandler OnExit;
}
नहीं के साथ मोनो विधि को पकड़ा। डिबगिंग के माध्यम से मैंने सत्यापित किया है कि मैं ईवेंट को सही तरीके से वापस प्राप्त कर रहा हूं। बस mono_event_get_raise_method शून्य लौटाता है। get_add_method और get_remove_method वापसी मान। – Jeff
@Jeff ने मेरा उत्तर – Krizz