C++事件管理

C++ 事件回调机制的几种实现方式
采用委托方式
1、duilib中的CEventSource。以下代码摘自duilib,并且有一点改动。
3、msvc支持的__event
转载于
http://blog.csdn.net/hyhnoproblem/article/details/42651949#0-tsina-1-92531-397232819ff9a47a7b7e80a40613cfe1

c++回调函数 callback
转载
http://blog.csdn.net/xie1xiao1jun/article/details/8262902#0-tsina-1-10885-397232819ff9a47a7b7e80a40613cfe1
(1)Callback方式
Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码,我们在Download完成时需要触发一个通知外面的事件:
(2)Sink方式
Sink的本质是你按照对方要求实现一个C++接口,然后把你实现的接口设置给对方,对方需要触发事件时调用该接口, COM中连接点就是居于这种方式。上面下载文件的需求,如果用Sink实现,代码如下:
(3)Delegate方式
Delegate的本质是设置成员函数指针给对方,然后让对方在需要触发事件时调用。C#中用Delegate的方式实现Event,让C++程序员很是羡慕,C++中因为语言本身的关系,要实现Delegate还是很麻烦的。上面的例子我们用Delegate的方式实现如下:
cocos2d-x 类回调 及类的成员函数的函数指针赋值问题
转载http://bbs.csdn.net/topics/390631145?page=1

C++ Event Model—C++Event机制的简单实现
一 事件模型
  对发生的事件作出的响应——事件模型。
1 事件:
  在面向对象中,就是对象的属性或者状态发生了变化,操作或者接收到了某些动作时,
向外发出了这种变化或者动作对应的通知。
转载于
http://www.cnblogs.com/bastard/archive/2012/01/10/2318417.html

C++中事件机制的简洁实现及需要放弃的特性
转载于
http://www.jb51.net/article/33701.htm

深入解析C++程序中激发事件和COM中的事件处理
转载于
http://www.jb51.net/article/78702.htm

在C++中实现事件(委托)
转载于
http://www.cppblog.com/weiym/archive/2013/01/31/197649.html

成员函数指针与高性能的C++委托(转载)
转载于
http://www.cppblog.com/weiym/archive/2013/03/02/198180.html

C++中事件机制的简洁实现及需要放弃的特性 里面涉及有变长参数的研究
转载于
http://www.jb51.net/article/33701.htm

C++事件处理中的__hook与__unhook用法详解
转载于
http://www.jb51.net/article/78696.htm

c#委托与事件(详解)
http://www.jb51.net/article/32415.htm

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值