自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 资源 (2)
  • 收藏
  • 关注

原创 thunk原理

<br /> <br />通常程序执行的都是代码段上的二进制流,堆栈上存储了函数调用过程中用到的变量,EIP很少有机会能指到堆栈上来,但是使用thunk技术可以在堆栈上以数据的形式加入一段可执行代码,并通过函数调用执行。就像这样:<br /> <br />#include <iostream> #include <windows.h> using namespace std; #pragma pack(push, 1) class Thunk { public: unsigned char

2011-01-22 22:42:00 607

原创 modern c++ design01

<br /> <br />基于Policy的Class设计<br /> <br /> <br />软件设计的核心理念是设计原则,设计原则讲的是为了使软件易维护,易扩展同时保持健壮性的一些“公理”。之所以说是公理是因为它是软件行业诞生以来的若干人经验的积累,经过检验符合客观实际,我猜也许最根本的是符合人们的思维习惯和认知规律。<br /> <br />同许多公理一样,软件设计的公理(设计原则)也是内涵简洁,外延无限大的东西。乍看之下很容易盲从,如果没有那么多的设计模式来支撑它,我们对它的认识也许永远只停留在内

2011-01-20 01:07:00 582

原创 modern c++ design系列

<br /><br /><modern c++ design>是我学C++以来一直仰视的书,之所以说仰视是因为里面对模板的使用可以用匪夷所思来形容,它同时结合了另一门让我仰视的技术——设计模式,仰视+仰视=崇拜,所以长久以来我一直没有把它读懂的信心。但它就在我手边,心里一直都惦记着它,经过两年多的工作积累,今天已经可以翻一翻它了,虽然还是有很多的绊脚石,但勉强可以继续下去。初读一遍已经能理解所要表达的意思,能体会到它的好处,能明白涉及到的知识点,我想书读到这里离读懂也就不算太远了。<br />对于一个陌生

2011-01-20 00:41:00 746 1

原创 动态创建2

<br />上一篇提到了一种“分散式”型别保存方式,即每个具体产品里面保存了型别信息。类似于MFC的CRuntimeClass。这样做的缺点就是不容易管理,类别分布在各个类中,如果中间某个链接“断裂”,那么有可能导致整个型别网不可用。<br /> <br />在Modern C++ Design中提到了一种使用工厂来管理所有类别的解决方案,类别都保存在一个map里,每个具体的产品类向该工厂注册。创建对象时通过调用CreateObject(int iTypeID)就可以得到相应的类别。同前一种比起来,这种方法

2011-01-10 18:12:00 327

原创 动态创建1

如果把对象保存在文件上,读取的时候就会面临一个问题,如何解析文件中的数据?怎样才能把文件中的数据和具体的型别对应起来?这就是动态创建问题。最直接的想法是给每个类一个编号。假如有三个类,CDuckClass, CCockClass, CMonkeyClass他们都派生自CRootClass,下面是一种可行的方案。void LoadFile(char* pszFileName) { ifstream infile(pszFileName); int iType; infile >> iTyp

2011-01-08 21:33:00 257

windows核心编程英文版

windows核心编程,学习windows编程必看

2010-08-23

重装系统后vc6.0编译debug版本补丁

重装系统后vc6.0不能编译debug版本,你需要这些dlls

2009-02-18

空空如也

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

TA关注的人

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