10 2012 档案

摘要:VC6.0附带工具软件:(1)ActiveX Control Test Container称为“ActiveX 控件测试容器”,顾名思义,此工具的主要功能就是测试ActiveX 控件,可以通过改变ActiveX 控件的属性观察控件的变化,也可以通过调用ActiveX 控件的方法观察控件的返回值,同时在下面的窗口中会显示控件发生的事件信息。此工具可以直观的进行控件的注册和注销 (File->Register/Unregister Controls)。(2)IDataObject Viewer(又叫DOBJVIEW)称为“数据对象查看器”,用来查看所有支持IdataObject接口的对象,. 阅读全文
posted @ 2012-10-25 22:20 Mr.Rico 阅读 (124) | 评论 (0) 编辑
摘要:malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针malloc()工作机制malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存块 阅读全文
posted @ 2012-10-18 10:28 Mr.Rico 阅读 (215) | 评论 (0) 编辑
摘要:这篇文章主要讲解G++编译器中虚继承的对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。问题拿捏得十分到位,下面是我对原文的翻译,原文见这里(By Edsko de Vries, January 2006)。本文是介绍C++的技术文章,假定读者对于C++有比较深入的认识,同时也需要一些汇编知识。本文我们将阐释GCC编译器针对多重继承和虚拟继承下的对象内存布局。尽管在理想的使用环境中,一个C++程序员并不需要了解这些编译器内部实现细节,实际上,编译器针对多重继承(特别是虚拟继承)的各种实现细节对于我们编 阅读全文
posted @ 2012-10-18 08:09 Mr.Rico 阅读 (225) | 评论 (0) 编辑
摘要:在日常工作中,经常需要使用随机算法。比如面对大量的数据,需要从其中随机选取一些数据来做分析。 又如在得到某个分数后, 为了增加随机性, 需要在该分数的基础上, 添加一个扰动, 并使该扰动服从特定的概率分布。本文主要从这两个方面出发,介绍一些算法, 供大家参考。首先假设我们有一个使用的随机函数float frand(), 返回值在(0, 1)上均匀分布。大多数的程序语言库提供这样的函数。在其他的语言如C/C++中, 可以通过间接方法得到。如 frand()= ((float)rand() ) / RAND_MAX; 1, 随机选取数据 假设我们有一个集合A(a_1,…,a_n), 对于... 阅读全文
posted @ 2012-10-18 00:27 Mr.Rico 阅读 (142) | 评论 (0) 编辑
摘要:本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。 本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来前缀匹配和后缀匹配的区别就仅仅在于比较的顺序不同。下文分别从最 简单的前缀蛮力匹配算法和后缀蛮力匹配算法入手,详细的介绍KMP算法和BM算法以及它们的实现。KMP算法首先来看一下前缀蛮力匹配算法的代码( 阅读全文
posted @ 2012-10-17 23:56 Mr.Rico 阅读 (181) | 评论 (0) 编辑
摘要:设计模式主要分为3类. 1.创建型模式前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:简单工厂模式(Simple Factory);工厂方法模式(Factory Method);抽象工厂模式(Abstract Factory);创建者模式(Builder);原型模式(Prototype);单例模式(Singleton)。说明: 严格来说,简单工厂模式不是GoF总结出来的 阅读全文
posted @ 2012-10-09 21:56 Mr.Rico 阅读 (159) | 评论 (0) 编辑
摘要:随着要维护的服务器增多,遇到的各种稀奇古怪的问题也会增多,要想彻底解决这些"小"问题往往需要更深的Linux方面的知识。越专业、分工越细的 工程师,在这方面的要求也就越高。这次,对MySQL Swap的问题的探索过程,就一不小心掉进了Linux Memory Managemant(Linux MM)的研究中去了,爬了很久才出来,这里做一个系列笔记。笔记中很多内容都是参考《Understanding the Linux Kernel, 3rd Edition》、Linux Source Code等地方,自己再做了一些总结,觉得有意义的总结这里记录一下,供参考。1. 写在前面L 阅读全文
posted @ 2012-10-08 14:31 Mr.Rico 阅读 (374) | 评论 (0) 编辑
摘要:在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。 物理存储空间布局 Linux的物理存储空间布局与处理器相关,详细情况可以从处理器用户手册的存储空间分布表(memory map)相关章节中查到,我们这里只列出嵌入式处理器平台Linux物理内存空间的一般布局,如图18-4所示。 图18-4 Linux物理内存空间一... 阅读全文
posted @ 2012-10-08 14:24 Mr.Rico 阅读 (5159) | 评论 (0) 编辑