10 2013 档案

摘要:上篇我说到,光有一个IOperation*的指针,是无法记录这么多事件的。由于无法确定要把回调绑定到哪个事件上,因此,我们需要引入一个中间的传递机制。没有看到前面的请先查阅上一篇关于UI回调Invoker的实现(一)问题回到,我怎么让InitControl(...)知道,我是SetPressFunc,还是SetItemChangeFunc,等等事件的回调。我初步的想法是:定义一个IAttacher接口:class IAttacher{public: virtual ~IAttacher() {}; virtual void AttachInvoker(IUIWnd* wnd) = 0;}; . 阅读全文
posted @ 2013-10-24 14:48 ·若狂 阅读(486) 评论(0) 推荐(0) 编辑
摘要:打算写一个DirectUI库,在写其中底层窗口的回调构造的时候遇到一个问题。Invoker是一个模板,因为closure的关系,它必须保存一个类对象的指针,和回调函数的地址。而函数调用的时候,就可以用一个通用的接口invoke就行了。接口的声明如下:class IOperation{public: virtual ~IOperation() {}; virtual void Invoke(IUIWnd* wnd, const EventArg& arg) = 0;}; 回调函数调用的时候,调用Invoke(...),传入(谁)那个窗口调用的,和调用的可能需要的数据。因为回调函数可能有不 阅读全文
posted @ 2013-10-24 12:49 ·若狂 阅读(486) 评论(0) 推荐(0) 编辑
摘要:在实际项目中,很多地方都存在IO。而IO是很耗时间的,比方说:new、malloc。对于现代的计算机来说,动辄就是GHz量级的主频,似乎感觉不到影响。但是在大型的项目里面,反复的new和delete,不仅会耗大量的时间,还会造成内存碎片。new是一个很麻烦的东西。有new的地方,就是你可能栽坑的地方... 阅读全文
posted @ 2013-10-10 13:08 ·若狂 阅读(880) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示