在C ++ / CLI中使用EventHandler [英] Using EventHandler in C++/CLI

查看:319
本文介绍了在C ++ / CLI中使用EventHandler的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

-我正在尝试在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 使用 System :: EventArgs 。您可以:

As winSharp93 points out, the signature for System::EventHandler takes a System::EventArgs. You can either:


  1. 创建自己的 EventArgs 派生的类,包含您想要的字符串消息,

  1. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆