摘要: // TestDelegate.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" typedef unsigned long gulong; typedef char gchar; typedef void* gpointer; typedef long GOb 阅读全文
posted @ 2013-05-03 22:11 日月王 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 公司的项目里有用到Don Clugston的FastDelegate,当时只知道是类似boost::function的东西,UI上当watcher用的比较多,所以也没去关注。今天想写个事件触发器时,突然想起这茬子,看来有必要认真的研究学习下了。搜了下网上关于Delegate的东西,有很多网友自个实现的简易版本,CodeProject上有2个开源项目写的不错,一个就是FastDelegate,还有一个模仿C#的Delegate。FastDelegate的实现依赖于编译器,作者NB的研究了各种编译器在各种平台上生成的汇编代码,将C++中神秘的成员函数调用还原普通的函数调用,其调用的汇编代码用他的框 阅读全文
posted @ 2013-05-03 21:07 日月王 阅读(515) 评论(0) 推荐(0) 编辑
摘要: // TestDelegate.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" typedef unsigned long gulong; typedef char gchar; typedef void* gpointer; typedef long GOb 阅读全文
posted @ 2013-05-03 16:32 日月王 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 一般,编译器采取最差的,而且一直使用最普通的形式。比如对于下面这个结构: // Borland (缺省设置) 和Watcom C++. struct { FunctionPointer m_func_address; int m_delta; int m_vtable_index; //如果不是虚拟 阅读全文
posted @ 2013-05-03 14:47 日月王 阅读(185) 评论(0) 推荐(0) 编辑