C/C++
文章平均质量分 51
mir1128
这个作者很懒,什么都没留下…
展开
-
学习计划
辞职期间学习计划 项目书籍方式比重基础知识,windows编程程序设计>核心编程>深入浅出MFC>编程实例>技术内幕>阅读开源代码notepad++,将书中经典实例消化吸收形成自己的代码库。50%操作系统相关知识自己动手写操作系原创 2010-04-01 16:50:00 · 382 阅读 · 1 评论 -
动态创建1
如果把对象保存在文件上,读取的时候就会面临一个问题,如何解析文件中的数据?怎样才能把文件中的数据和具体的型别对应起来?这就是动态创建问题。最直接的想法是给每个类一个编号。假如有三个类,CDuckClass, CCockClass, CMonkeyClass他们都派生自CRootClass,下面是一种可行的方案。void LoadFile(char* pszFileName) { ifstream infile(pszFileName); int iType; infile >> iTyp原创 2011-01-08 21:33:00 · 237 阅读 · 0 评论 -
动态创建2
<br />上一篇提到了一种“分散式”型别保存方式,即每个具体产品里面保存了型别信息。类似于MFC的CRuntimeClass。这样做的缺点就是不容易管理,类别分布在各个类中,如果中间某个链接“断裂”,那么有可能导致整个型别网不可用。<br /> <br />在Modern C++ Design中提到了一种使用工厂来管理所有类别的解决方案,类别都保存在一个map里,每个具体的产品类向该工厂注册。创建对象时通过调用CreateObject(int iTypeID)就可以得到相应的类别。同前一种比起来,这种方法原创 2011-01-10 18:12:00 · 301 阅读 · 0 评论 -
modern c++ design系列
<br /><br /><modern c++ design>是我学C++以来一直仰视的书,之所以说仰视是因为里面对模板的使用可以用匪夷所思来形容,它同时结合了另一门让我仰视的技术——设计模式,仰视+仰视=崇拜,所以长久以来我一直没有把它读懂的信心。但它就在我手边,心里一直都惦记着它,经过两年多的工作积累,今天已经可以翻一翻它了,虽然还是有很多的绊脚石,但勉强可以继续下去。初读一遍已经能理解所要表达的意思,能体会到它的好处,能明白涉及到的知识点,我想书读到这里离读懂也就不算太远了。<br />对于一个陌生原创 2011-01-20 00:41:00 · 723 阅读 · 1 评论 -
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 · 579 阅读 · 0 评论 -
temp
<br />#pragma once #include <iostream> #include <map> using namespace std; class CRootClass { public: virtual void Display() = 0; }; typedef CRootClass* (*CREATECLASSOBJECT)(); class CClassType { public: CClassType(char* szClassName, CREATE原创 2011-03-28 19:52:00 · 376 阅读 · 1 评论