自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++11的异步调用

用C++11的线程库完成异步调用非常方便,标准库提供了非常漂亮的接口。下面就是个很好的例子.#include #include templatestruct async_call;templatestruct async_call{ template async_call(F&& f, Args... args) : m_task(f) { m_future=m_ta

2013-12-11 23:36:23 3217

原创 实现设计模式:访问者模式

访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。和标准的访问者模式相比,这个实现借鉴了loki,将数据和算法是完全解耦,既很容易增加新的算法,也很容易增加新的数据类型。

2013-08-15 10:41:21 585

原创 实现设计模式:享元模式

享元模式其实类似于对象池。如果系统中有大量的细粒度对象,创建这些对象是不小的开销。如果能共享和反复使用这些对象,那么就可以减少对象数量,提高系统性能。下面实现了一个享元工厂,可以作为参考。#include #include namespace dp{ template class flyweight_factory { public: template flywei

2013-08-13 14:30:48 550

原创 实现设计模式:命令模式

命令模式将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。客户端不需要知道是谁如何实现相应的功能。这里实现了一种简单的命令模式,不支持恢复功能。#include #include namespace dp{ template class command { public: command(T& re

2013-08-13 11:07:16 611

原创 实现设计模式:原型模式

原型模式是一种很简单的模式,它能在不知道对象确切类型,只有基类信息的情况下,正确复制对象。以下实现了一个原型工厂,可以利用保存在工厂里的原型,克隆出新的对象。#include #include namespace dp{ template class prototype_factory { public: template void insert(const Key

2013-08-13 09:50:57 543

原创 实现设计模式:工厂模式

工厂模式将创建对象的代码从客户代码中分离,提供了一种在大系统中管理创建众多对象的有效方法。当从配置文件或流中创建对象时,经常采用这种模式。这里提供一种通用实现,可以作为参考。#include #include namespace factory{ template > class simple_factory { public: T* operator()(Key&)

2013-08-12 16:38:02 727

原创 实现设计模式:观察者模式

观察者模式是一种常用的设计模式。当被观察对象的状态发生改变时,所有依赖于它的观察者都得到通知并被自动更新。这里利用boost:;signal实现了一个通用的观察者模式,能满足一般需要。如果需要异步通知或更新,就不行了。#include namespace observe{ template class subject { public: typedef boost

2013-08-12 14:38:12 679

原创 Windows下利用thunk实现回调成员函数(1)

今天由于工作需要,研究了下thunk技术,下面的内容算是个小小的总结吧。我们知道,在Windows和x86下,函数调用主要有以下几种方式:__stdcall这是Windows下默认的函数调用方式。调用者负责把函数参数从右到左压入堆栈,函数在返回前负责清理堆栈。用汇编语言表示就是:调用方:mov esi, esp;保存ESPpush ....

2009-03-11 21:08:00 1337

原创 MFC 2008,新的用户界面(3)- 菜单栏、工具栏和状态栏

  MFC加入了新窗口元素:窗格。崭新的工具栏和状态栏都是一种窗格。  一、窗格  窗格是MFC在2008年新加入的,它由类CPane和其基类CBasePane实现。窗格就是用来在主框架窗口上占据边框位置的窗口,例如工具栏和状态栏。  CBasePane实现了窗格的基本功能和属性:停靠、浮动以及基本的窗口消息处理。CPane在CBasePane的基础上,实现了抓取的功能,可以用鼠标把窗格从

2008-08-23 19:20:00 3146

原创 MFC 2008,新的用户界面(2)- 应用程序类

看看应用程序类,这个类是MFC程序中必不可少的一个类。MFC用CWinAppEx替代了CWinApp。CWinAppEx从CWinApp派生。向导生成的代码中,主要是InitInstance这个函数有了变化。 LoadStdProfileSettings(4); // 加载标准 INI 文件选项(包括 MRU) InitContextMenuManager(); InitKeybo

2008-08-23 14:01:00 3107 3

原创 MFC 2008,新的用户界面(1)- 框架窗口

早听说Visual C++ 2008 FR1提供了很多新的功能,其中就包括MFC的新界面。现在拿到Visual Studio 2008 SP1简体中文版,急不可待的用了一下。果然,在向导中,就可以在工程里加入modern风格的界面了,可以模仿Office和Visual Stidio的界面风格。阅读向导生成的代码发现,MFC用了一套新的框架类: SDI:CFrameWndEx MDI:C

2008-08-23 13:54:00 2636

中文内码转换程序

CHNCNVT是一个小巧的中文内码转换程序,可以进行GB2312(简体)和BIG5(繁体)之间的相互转换。目前支持对文本和文件的转换。 特点:1.1版可以直接转换剪贴板上的文本。转换在复制时自动进行,转换后的文本放在剪贴板上,只需粘贴即可,十分方便。转换数据库等文本时又快又好。 程序无需安装,解压后即可运行。

2006-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除