Viki

如果不去尝试,那就没有如果

排序:
默认
按更新时间
按访问量

告别CSDN,转去博客园(http://www.cnblogs.com/organic/)

在CSDN开博客的时间不长,陆陆续续也写了一些文章,但10月后CSDN写的博客除了专家外很难能够上到博客首页上去了,不论写的质量怎么样,长期在博客首页看到的都是专家的文章,诚然,专家写的文章质量肯定不低,但这样很明显打击了我们这些新鲜的血液,如果自己写的博客不是为了分享,还不如写在印象笔记里给自己...

2015-11-30 01:09:00

阅读数:545

评论数:0

Windbg跟踪临界区的BUG

最近跟踪了一个程序的界面卡死问题,该卡死偶尔出现,在抓到一次dump后用windbg载入分析,打印出函数调用堆栈后,一眼可以看出是临界区死锁了。 代码: 0:000:x86> kb ChildEBP RetAddr  Args to Child               003...

2015-10-23 23:26:40

阅读数:859

评论数:0

Unix哲学

01.模块原则:使用简洁的接口拼合简单的部件。  02.清晰原则:清晰胜于机巧。  03.组合原则:设计时考虑拼接组合。  04.分离原则:策略同机制分离,接口同引擎分离。  05.简洁原则:设计要简洁,复杂度能低则低。  06.吝啬原则:除非确无它法,不要编写庞大的程序。  07.透明性原则:...

2015-10-05 17:22:44

阅读数:339

评论数:0

使用Windbg在XP下Heap追踪失败的原因

Windbg开启页堆进行用户态栈回溯在Win7上成功,但在XP上却提示“ReadMemory error for address eeddccee”,原因竟是Windbg的版本过高,当工具也会出问题,当高版本软件不可信任,我们该如何处理,这里就展示一次蛋疼的Debug Heap Page出错的跟踪...

2015-09-13 09:20:55

阅读数:878

评论数:0

C++浅析——虚表和虚表Hook

1、虚表位于何处? 2、同一个类对象的虚表位置相同吗? 3、虚表需要在加载后进行初始化吗? 4、多父类继承的虚表如何存放? 5、何为虚表Hook?

2015-08-08 09:40:35

阅读数:3514

评论数:0

大话设计模式C++版——装饰模式

女人常说男人喜新厌旧,只见新人笑,那闻旧人哭,但装饰模式(Decorator)却是一种结交新朋友不忘老朋友的设计模式,非常适合去古代当老公(现代是不行的,因为只能娶一个老婆了)。装饰模式的本质是每一个装饰对象都被保留一个被其装饰的对象,装饰对象在展示新功能时会同时去掉用被其装饰的对象的同功能函数,...

2015-07-04 10:17:30

阅读数:876

评论数:0

一次Mutex死锁的原因探究

1、现象 最近项目中调出一个bug,某些时候程序会卡死不动,用windbg进行加载后用 ~*kb 命令列出所有的线程栈调用,发现有多个线程调用 WaitForMultipleObjects 在等待同一个内核对象:

2015-07-04 09:14:18

阅读数:2781

评论数:0

谁在死锁Mutex——用Windbg查找Mutex死锁所有者线程

Who is blocking that Mutex? - Fun with WinDbg, CDB and KD 05 Aug 2006 By Ingo Rammer I'm currently toying with the idea of creating a sm...

2015-07-01 20:57:43

阅读数:1457

评论数:0

COM中的线程模式

Choosing the threading model for an object depends on the object's function. An object that does extensive I/O might support free-threading to provid...

2015-06-28 20:37:32

阅读数:1056

评论数:0

大话设计模式C++版——建造者模式

日常做菜的过程中,经常会有忘记放盐或者放2次盐的经历,最后导致好好的一盘菜让大家无从下口。这个时候就需要用到建造者模式来规范炒菜的过程,来保证每一道菜都会经历加油、放食物、放盐、放味精这4道基本的工序,同时保证每道工序不会重复。

2015-06-28 12:28:34

阅读数:791

评论数:0

大话设计模式C++版——观察者模式

观察者模式是一种类似于消息分发的模式,用于一个任务需要被多个对象监听的场景,或者成员对象需要反向通知类对象的情况,是一种很有用的设计模式。 这里以大话设计模式中的例子为例,办公室员工A、B、C在看股票看电影,这时老板回来了,被A、B、C重金贿赂后的前台MM发出通知给A、B、C,A、B、C收到...

2015-06-28 09:24:59

阅读数:572

评论数:0

大话设计模式C++版——代理模式

本篇开始前先发个福利,程杰的《大话设计模式》一书高清电子版(带目录)已上传至CSDN,免积分下载。 下载地址:http://download.csdn.net/detail/gufeng99/8843487 代理模式是一种比较简单但却实用的设计模式,他可以灵活的更换代理的对象,但保证功能的...

2015-06-27 09:50:28

阅读数:850

评论数:0

大话设计模式C++版——工厂模式在COM中的典型应用

上篇《大话设计模式C++版——抽象工厂模式》中,我们拯救世界未遂,留下小小的遗憾,本篇中我们将给出一个解决方案——COM组件技术,同时也顺便扯扯工厂模式在COM组件技术中的应用。 工厂模式违背开放—封闭原则的根本原因在于对象的产生无法通过客户模块外的数据进行控制,如果我们能从xml、注册表...

2015-06-15 09:26:39

阅读数:910

评论数:0

大话设计模式C++版——抽象工厂模式

前面说过,简单工厂模式是最基础的一种设计模式,那以工厂命名的设计模式就是23种设计模式中最多的一种,他们一脉相承,一步一步进化而来,这里就是其中的最后一种——抽象工厂模式(Abstract Factory),其是在工厂方法模式的基础上改进而来,如果没有弄明白工厂方法模式的同学请先观看《大话设计模式...

2015-06-13 22:55:37

阅读数:698

评论数:0

大话设计模式C++版——工厂方法模式

工厂方法模式是以简单工厂模式为基础的,如果未了解简单工厂模式的同学可先浏览《大话设计模式C++版——简单工厂模式》。在简单工厂模式中,提到过简单工厂模式的缺陷,即违背了开发—封闭原则,其主要原因是由于switch的判断结构的使用,使修改或添加新的对象时需要改动简单工厂类的代码,不符合开放—封闭原则...

2015-06-13 20:48:36

阅读数:536

评论数:0

exe文件无法打开

1、现象 在一个XP 64位机子上从IE下载一个exe文件后,双击竟然无任何反应,以为文件有问题,但多次尝试后仍是如此,但打开cmd通过命令行启动是正常,双击该机子上其他exe文件也都能启动,但从IE上下载的就是不行。

2015-06-13 11:10:05

阅读数:869

评论数:0

数据驱动编程之表驱动法

本文示例代码采用的是c语言。 之前介绍过数据驱动编程《什么是数据驱动编程》。里面介绍了一个简单的数据驱动手法。今天更进一步,介绍一个稍微复杂,更加实用的一点手法——表驱动法。 关于表驱动法,在《unix编程艺术》中有提到,更详细的描述可以看一下《代码大全》,有一章专门进行描述(大概是第八章)。...

2015-05-23 11:19:58

阅读数:858

评论数:0

大话设计模式C++版——表驱动法改造简单工厂

上回《大话设计模式C++版——简单工厂模式》中指出了简单工厂模式的缺陷,即违背了开发—封闭原则,其主要原因是由于switch的判断结构的使用,使修改或添加新的对象时需要改动简单工厂类的代码,如何改造switch结构,表驱动法就可以粉墨登场了。 表驱动法的介绍见《数据驱动编程之表驱动法》。 ...

2015-05-23 10:38:55

阅读数:1009

评论数:0

大话设计模式C++版——简单工厂模式

简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器。 1、抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程) class IOperation { public: IOperation() : m_nNuml(0),...

2015-05-23 09:06:44

阅读数:1362

评论数:0

大话设计模式C++版——原则和引言

读程杰的《大话设计模式》有一段时间了,将其C#版的设计模式代码用C++全部重新实现了一遍,并记下个人的一些心得,同时也对一些设计模式进行了改造。网上有份《大话设计模式实现(C++版)》的资料,但稍看后错误不少,比如用作接口的基类不将析构函数申明为虚函数,仅内部使用的成员变量不申明为private(...

2015-05-18 23:49:49

阅读数:828

评论数:0

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