在C ++ / CLI中使用EventHandler [英] Using EventHandler in C++/CLI
问题描述
-我正在尝试在c ++ / cli中使用事件处理程序引发事件,然后在c#中订阅它。
-I am trying to use event handler in c++/cli to throw event and then subscribe it in c#
class Mclass
{
event System::EventHandler ^ someEvent;
void ShowMessage(System::String ^)
{
someEvent(this,message);
}
}
-但会引发错误
错误C2664:'managed :: Mclass :: someEvent :: raise':无法将参数2从'System :: String ^'转换为'System :: EventArgs ^'
error C2664: 'managed::Mclass::someEvent::raise' : cannot convert parameter 2 from 'System::String ^' to 'System::EventArgs ^'
如何纠正它
推荐答案
正如winSharp93所指出的, System :: EventHandler $ c $的签名c>使用
System :: EventArgs
。您可以:
As winSharp93 points out, the signature for System::EventHandler
takes a System::EventArgs
. You can either:
-
创建自己的
EventArgs
派生的类,包含您想要的字符串消息,
Create your own
EventArgs
-derived class that contains the string message you want,
使用您自己的委托而不是`System :: EventHandler':
Use your own delegate instead of `System::EventHandler':
delegate void MyDelegate(string ^);
event MyDelegate ^ someEvent;
这篇关于在C ++ / CLI中使用EventHandler的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!