C++事件管理

来源:互联网 发布:聊城关键词优化 编辑:程序博客网 时间:2024/06/07 22:59

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 0
原创粉丝点击