2012年9月6日

WebKit源代码里的RefPtr智能指针

摘要: WebKit源代码里的RefPtr智能指针的一些心得。OverviewWebKit的智能指针由类族 RefPtr 来实现,其核心由三个类组成:RefCountedRefPtrPassRefPtr其中RefCounted提供了引用计数器(一个int型成员),而RefPtr和PassRefPtr则提供了自动管理引用计数器的功能。根据RefPtr and PassRefPtr Basics的说法,最初并没有RefPtr和PassRefPtr,这两个类是2005年才加入的,在它们出现之前完全是靠找死的人工管理RefCounted的引用计数。RefCounted类本身是没有问题的,但它的使用方法相当繁琐 阅读全文

posted @ 2012-09-06 11:45 梦想Sky 阅读(1984) 评论(0) 推荐(0) 编辑

2012年7月20日

WinDbg配置和使用基础

摘要: WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。1. WinDbg介绍:Debugging Tools and Symbols: Getting Startedhttp://www.microsoft.com/whdc/devtools/debugging/debugstart.mspxA word for WinDbghttp://mtaulty.com/communityserver/blogs/mike_taultys_blog/archive/2004/08/03/4656.aspx. 阅读全文

posted @ 2012-07-20 17:50 梦想Sky 阅读(305) 评论(0) 推荐(0) 编辑

2012年6月13日

C++中的 new / delete

摘要: /*****************************************************************************//* C++中的 new / delete *//*****************************************************************************//* new的3种形态: new operator , operator new , placement new new operator: new操作符,像 + - * / && . :: ?: 等操作符一样,是语言内 阅读全文

posted @ 2012-06-13 14:24 梦想Sky 阅读(375) 评论(0) 推荐(0) 编辑

2012年6月5日

Python电子书

摘要: 简明Python教程(入门的可以看看) http://www.woodpecker.org.cn:9081/doc/abyteofpython_cn/chinese/index.html Python学习手册 第三版中文(入门书,简单易懂) http://www.jb51.net/books/22761.html Python核心编程 第二版中文(翻译被人抢了,好吧,我们不管这个) http://www.jb51.net/books/20775.html Dive Into Python 中文版(好书) http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/ 阅读全文

posted @ 2012-06-05 08:43 梦想Sky 阅读(4373) 评论(0) 推荐(0) 编辑

python IDLE的执行py文件

摘要: Import在IDLE下也可以用import来运行文件。如运行test.py文件:improt test但是对于一个文件,improt只能在第一次导入时运行文件。在第一次导入之后,其他的导入都不会再工作,甚至在另一个窗口中改变并保存了模块的源代码文件也不行。实验了下,发现重启IDEL后依然不行。这是有意设计的结果。导入是一个开销很大的操作以至于每个程序不能够重复多于1次。Reload但如果想要python在同一次会话中再次运行文件,需要用内置的reload(重载)函数。调用格式是:reload(test)使用reload,输出中会包含<module 'test' from 阅读全文

posted @ 2012-06-05 00:05 梦想Sky 阅读(26082) 评论(0) 推荐(1) 编辑

2012年6月4日

Python IDLE入门

摘要: IDLE是Python软件包自带的一个集成开发环境,初学者可以利用它方便地创建、运行、测试和调试Python程序。一、IDLE的安装实际上,IDLE是跟Python一起安装的,不过要确保安装时选中了“Tcl/Tk”组件,准确地说,应该是不要取消该组件,因为默认时该组件是处于选中状态的。二、IDLE的启动安装Python后,我们可以从“开始”菜单→“所有程序”→“Python 2.7”→“IDLE(Python GUI)”来启动IDLE。IDLE启动后的初始窗口下图所示:如上图所示,启动IDLE后首先映入我们眼帘的它的Python shell,我们通过它可以在IDLE内部执行Python命令。除 阅读全文

posted @ 2012-06-04 23:19 梦想Sky 阅读(99663) 评论(7) 推荐(6) 编辑

2012年5月31日

寻找出现次数最多的数据

摘要: 见编程之美在一堆数里随便拿一个数,再找一个与它不相等的,然后一起扔掉,这样问题规模不断缩小,最终等到找不到一个不相等的数时,就成功 了。但要简化算法,就不能每拿一个数就统统找一遍。可以考虑准备一个队列,队列里放着暂时扔不掉的数。如从头开始,将a[0]放入队列,再看a[1],如 果a[0] != a[1],则扔掉a[1]和a[0],a[0]从队列取出;如果a[0] == a[1],则a[1]入队列,然后a[2]进行相同的操作,以此类推。 1 int FindMaxcountNum(const int* pArr, const size_t size) 2 { 3 int nValue;... 阅读全文

posted @ 2012-05-31 15:50 梦想Sky 阅读(656) 评论(0) 推荐(0) 编辑

2012年5月28日

MFC的RTTI实现

摘要: C++设计者在C++使用的早期并没有意识到RTTI(运行时类型检查)的重要性,后来随作框架结构的类库出现及其应用越来越广泛,RTTI就变得越来越重要了。例如下面的这个语句: CWnd *pWnd;任何人都知道对象pWnd是CWnd类型的指针。但是如果有一个类CView是从CWnd派生来的,对于下面的语句: CWnd* CreateView() { return new CView; }对 于使用CreateView()的用户而然,pWnd = CreateView(),他如何确定pWnd所指向的对象的真正类型呢?因此,必须有一个能够在运行时刻就能够确定指针对象类型的方法,比如给每一... 阅读全文

posted @ 2012-05-28 10:45 梦想Sky 阅读(2764) 评论(0) 推荐(0) 编辑

MFC消息响应机制分析

摘要: ---- MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消息映射机制,更是涉及到很多低层的东西,我们在这里,对它的整个消息映射机制进行了系统的分析,可以帮助程序开发人员对MFC的消息映射机制有一个比较透彻的了解。1.引言---- VC++的MFC类库实际上是Windows下C++编程的一套最为流行的类库。MFC的框架结构大大方便了程序员的编程工作,但是为了更加有效、灵活的使用MFC编程,了解MFC的体系结构往往可以使编程工作事半功倍。它合理的封装了WIN32 API函数,并设计了一套方便的消息映射机制。但这套机制本身比较庞大和复杂,对它的分析和了解无疑有助于 阅读全文

posted @ 2012-05-28 09:49 梦想Sky 阅读(33365) 评论(2) 推荐(8) 编辑

2012年5月4日

BM字符串匹配算法

摘要: 在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前相当有效又容易理解的一种,一般情况下,比KMP算法快3-5倍。BM算法在移动模式串的时候是从左到右,而进行比较的时候是从右到左的。BM算法实际上包含两个并行的算法,坏字符算法和好后缀算法。这两种算法的目的就是让模式串每次向右移动尽可能大的距离(j+=x,x尽可能的大)。几个定义:例主串和模式串如下:主串 : mahtavaatalomaisema omalomailuun模式串: maisemaomaloma好后缀:模式串中的aloma为“好后缀”。坏字符:主串中的“t”为坏字符。好后缀算法如果程序匹配了一个好后缀, 并且在 阅读全文

posted @ 2012-05-04 19:57 梦想Sky 阅读(7211) 评论(1) 推荐(1) 编辑

导航