- 博客(19)
- 资源 (27)
- 收藏
- 关注
转载 浅谈内存泄漏(三)
使用BoundsChecker检测内存泄漏:BoundsChecker采用一种被称为 Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后再执行原来的
2010-03-25 11:22:00 548
转载 浅谈内存泄漏(一)
对于一个c/C++程式员来说,内存泄漏是个常见的也是令人头疼的问题。已有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已包含支持Smart Pointer的class,但是他的使用似乎并不广泛,而且他也不能解决任何的问题;Garbage Collection技术在Java中已比较成熟,但是在
2010-03-25 00:26:00 522
转载 浅谈内存泄漏(二)
检测内存泄漏: 检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve M
2010-03-25 00:24:00 391
转载 SOCKET类的设计和实现
SOCKET类的设计和实现 WinSock基本知识 这里不打算系统地介绍socket或者WinSock的知识。首先介绍WinSock API函数,讲解阻塞/非阻塞的概念;然后介绍socket的使用。 WinSock API Socket接口是网络编程(通常是TCP/IP协议,也可以是其他协议)的API。最早的Socket接口是Berkeley
2010-03-24 22:17:00 563
转载 CObject类
CObject类 CObject是大多数MFC类的根类或基类。CObject类有很多有用的特性:对运行时类信息的支持,对动态创建的支持,对串行化的支持,对象诊断输出,等等。MFC从CObject派生出许多类,具备其中的一个或者多个特性。程序员也可以从CObject类派生出自己的类,利用CObject类的这些特性。本章将讨论MFC如何设计CObject类的这些特性。首先,考察C
2010-03-24 22:04:00 529
转载 依赖、关联、聚合、组合还有泛化的关系
世界是普遍联系的,因此程序世界中的类,也不可能是孤立的。UML为我们定义了它们之间的关系,就是:依赖、关联、聚合、组合还有泛化。 泛化关系比较好理解,就是表示类之间的继承关系。容易混淆的是依赖、关联、聚合和组合的关系。这里做一些甄别: 1、 依赖和关联的颠倒颠 在网上查找了一下依赖和关联的区别,有说“关联本身即是一种依赖”,亦有说“依赖是一种弱关联
2010-03-17 14:59:00 449
转载 强内聚、松耦合
即使是最初级的程序员,在常常的被教导中,他也了解了这句口号的含义:我们的程序要模块化,模块要完成明确的一组关联的服务功能,要求它的各部分是相关的、有机组合起来是完整体(外部程序来看黑盒子),模块的内部各成分之间相关联程度要尽可能高(强内聚);而模块与模块之间又要求是可分拆的、少依赖的(松耦合)。 人们易于实现强内聚的模块,例如:一个函数实现一个独立的功能,这就是强内聚。 人们不易实现松
2010-03-17 14:59:00 636
转载 ping源代码
// ping.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #pragma comment(lib,"ws2_32")#include #include #include "Ws2tcpip.h"typedef struct icmp_hdr{ unsigned char icmp_type; // 类型 unsigned char
2010-03-12 00:21:00 1364
转载 IP报文格式
IP报文格式网络层位于TCP/IP 协议栈数据链路层和传输层中间,网络层接收传输层的数据报文,分段为合适的大小,用IP 报文头部封装,交给数据链路层。网络层为了保证数据包的成功转发,主要定义了以下协议:IP(Internet Protocol)协议:IP 协议和路由协议协同工作, 寻找能够将数据包传送到目的端的最优路径。IP 协议不关心数据报文的内容,提供无连接的、不可靠的服务
2010-03-12 00:18:00 8364 1
原创 快速排序
void QuickSort(int list[],const int left,const int right){ if (left { int l = left; int r = right+1; int key = list[l]; do { do { l++; } while (list[l] do { r--; } while
2010-03-11 00:38:00 357
原创 kmp算法
void GetFailure(const char* pat,int failure[]){ failure[0] = -1; int len = strlen(pat); int j; for (int i = 1; i { j = failure[i-1];//表示pat[j]...pat[0] == pat[i-1]...[pati-j-1]; while (pat[i] !
2010-03-10 23:50:00 445
原创 接触过的属性收藏
ConditionalAttribute : 指示编译器应忽略方法调用或属性,除非已定义指定的条件编译符号。 DllImportAttribute : 指示该属性化方法由非托管动态链接库 (DLL) 作为静态入口点公开。AttributeUsageAttribute : 指定另一属性类的用法。GuidAttribute :当不需要自动 GUID 时提供显式的 System
2010-03-10 14:11:00 583
转载 分布式
什么是分布式计算?所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。 最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,您可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;您可以寻找超过1000万位
2010-03-09 15:33:00 650
转载 MIME
MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 MIME的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议,在1992年最早
2010-03-09 13:45:00 634
原创 .net应用程序配置表
NameValueCollection appSettings = ConfigurationSettings.AppSettings; 通过上面语句可以得到配置表集合,再通过appSettings 可以得到(key ,value)这样形式的配置信息。 注意:要使用配置表,首先得手动创建一个*.exe.config文件,该文件命名和应用程序名字一样,而且要和应用程序放在同一个目录。
2010-03-08 14:34:00 530
原创 dshow读书笔记
CBaseObject类: This is the base object class that supports active object counting. As part of the debug facilities we trace every time a C++ object is created or destroyed. The name of the obje
2010-03-02 15:34:00 418
苹果脚本跟我学 (简体中文)
2010-10-12
网络编程测试代码,仅供自己使用,已加密
2010-02-07
Sparx.Systems.Enterprise.Architect.Corporate.v7.1.831
2009-05-31
Chapter 9. The Stack and the Heap
2009-05-27
ISO_IEC_14496-12
2008-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人