自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

转载 C语言中的柔性数组结构

【柔性数组结构成员】  C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其 他成员。柔性数组成员允许结构中包含一个大小可变的数组。sizeof返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。】 C语言大全,“柔

2013-02-01 11:19:01 954

转载 内核模式和用户模式的切换

32位x86系统,每个进程的空间是4GB,即地址0x00000000到0xFFFFFFFF。为了高效调用,Windows会把操作系统的内核数据和代码映射的系统中所有进程的进程空间中。因此4GB空间被划分为两个区域:用户空间和系统空间,默认大小为各2GB。为了保护映射到进程空间的系统代码和数据,Windows提供了权限控制机制。也就是两种访问模式:用户模式和内核模式。处理器在硬件一级保证

2013-01-22 11:29:06 3409

转载 Windows进程创建的流程分析。

.   创建进程的大体流程:  创建进程的过程就是构建一个环境,这个环境包含了很多的机制 (比如自我保护, 与外界通信等等)。 构建这个环境需要两种“人”来协调完成(用户态和内核态),他们各有分工,其中用户态提供原料(提供创建的那些参数), 内核态负责来构建这个环境,由于环境是由内核态构建的,因此他持有这个环境的控制权, 而用户由于提供了原料, 因此他具有使用权。 内核态开始构建环境中的基

2013-01-15 16:02:35 2602

转载 Windbg查看Shadow SSDT

关于SSDT即系统描述符表,《SSDT Hook的妙用-对抗ring0 inline hook》这篇文章描述的已经很清楚了。引用文章中的一段话:“内核中有两个系统服务描述符表,一个是KeServiceDescriptorTable(由ntoskrnl.exe导出),一个是KeServieDescriptorTableShadow(没有导出)。两者的区别是,KeServiceDescript

2013-01-04 17:13:05 1617

转载 利用VMWare和WinDbg调试驱动程序

利用VMWare和WinDbg调试驱动程序心里总感觉 SOFTICE 的发展快到末路了。果然在 2006 年时Compuare 宣布停止 SOFTICE 开发。这里消息确实令很多人心痛。但与此同时,Windows 的配套调试器 windbg , cdb 等不断更新,功能不断强大,你必须选择它,虽然它内核调试速度不理想。后来我知道了 syser debuger, 国人写的不错的调试器

2012-03-31 09:35:19 589

原创 进程间通信方式

<br />1. 管道pipe<br />  一般不用匿名管道做进程通信,使用2<br />2. 命名管道FIFO<br />  推荐使用,和socket相比,不占用端口号,虽然也支持不同机器通信,但一般只用于本机进程通信,支持数据双向或单向传输<br />3. 内存映射MemoryMapping<br />  适用于共享数据的情况,与管道和socket相比,缺点是不能被动得到通知,只能主动去访问共享数据。假如有A,B两个进程,A修改或读取共享内存的数据,B并不能知道,B只能通过自己主动去访问共享内存,得知

2010-07-04 15:39:00 568

原创 VC内存映射文件

<br />vc 内存映射文件---《WINDOWS核心编程》17章学习笔记<br />windows下如果要对一个磁盘文件指定部分进行修改有如下【三种方法】:<br />【方法一】打开文件,把file指针移动到指定位置,写入数据; <br />【方法二】打开文件,读文件指定部分内容到内存buf,在buf中查找,修改,最后回写入文件;<br />【方法三】内存映射文件,此方法同时考虑到了以上2种方式,即直接操作文件+在内存中操作文件<br />        其原理和虚拟内存相同,不同的是以磁盘文件代替系统

2010-07-04 15:38:00 1116 1

转载 Windump使用方法(ZT)

工具名称:Windump运行平台:Windows/Unix软件类别:免费软件网址:http://winpcap.polito.it/install/default.htm Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump。它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/入侵分析员做进一步流量分析和入侵检测

2010-01-24 20:26:00 3981

原创 wireshark中英文对比

帧号 时间    源地址          目的地址      高层协议  包内信息概况No.  Time    Source         Destination      Protocol    Info1  0.000000  202.203.44.225   202.203.208.32  TCP     2764 > http [SYN] Seq=0 Len=0 MSS=1460   

2010-01-24 20:24:00 1264

原创 RSTP简介(ZT)

rtsp简介(ZT)Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一种可扩展的框架,使能够提供能控制的,按需传输实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存贮的文件。rtsp对流媒体提供了诸如暂停,快进等控制,而它本身并

2010-01-24 20:18:00 1201

原创 关于自绘按钮闪烁问题.

 问题描述:我的dialog使用了双缓冲, 我的自绘button类也使用了双缓冲. 但是仍然会闪烁.我的dialog以每秒一次的频率刷新. 发现, dialog不闪, 反倒是dialog内部的按钮闪了起来.分析:由于父窗口和button都使用了双缓冲, 所以, 其本身不会出现闪烁.问题可能在于:但是, 由于父窗口和子窗口不是同时画的, 画完不窗口, 再画子窗口, 就会出现闪烁了!!!解

2009-12-25 22:59:00 678

转载 MultiByteToWideChar和WideCharToMultiByte用法详解

1.使用方法详解  在本文开始之处,先简要地说一下何为短字符和宽字符.  所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE.关于windows下的ASCII和UNICODE的更多信息,可以参考这两本经典著作:《windows 程序设计》,《windows 核心编程》.这两本书关于这两种字符都有比较详细的解说.

2009-10-09 17:30:00 418

原创 Windows CE 5.0 数据类型大全

 摘录自,位于"Windows CE Features > Shell and User Interface > Graphics, Windowing and Events > GWES Reference > Windows Reference"The data types supported by Microsoft® Windows® CE are used to de

2009-10-05 14:55:00 523

原创 live555源代码简介

live555源代码简介liveMedia项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server。四个基本的库分别是UsageEnvironment&TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment。UsageEnvironment和TaskScheduler类用于事件的调度,实现异步读取事件的句柄的设置以

2009-10-05 12:04:00 1318

原创 MS C、STL、MFC对Windows Mobile开发的支持

 MS C、STL、MFC对Windows Mobile开发的支持 所有资料来自MSDN --------------------------------------------------------------------------------1.Mobile支持的Microsoft Cwcsncpy_s wcscpy_s wcscat_s strncpy_s s

2009-10-05 12:00:00 842

转载 Filter的连接

1. PIN连接filters通过IPin接口连接pin。output pin连接到input pin。每个pin连接有一个media sample,通过am_media_type描述。一个应用程序通过调用在filter graph manager上的方法来连接filter,而不是通过filters或者pins上的方法。应用程序可以直接指定哪些filters连接,通过IFilterGrap

2009-09-23 19:38:00 2549

原创 DirectShow 学习笔记

DirectShow 学习笔记     一 DirectShow简介DirectShow  主要为在Windows平台上处理各种格式的媒体文件的回放,音视频采集等高性能的多媒体应用,提供了完整的解决方案并集成了DirectX家族中其他成员(如DirectDraw,DirectSound等技术)二 Filter原理1 Filter的基本概念Filter是DirectShow中的最基本

2009-09-23 19:34:00 1157

原创 MD5(Java版)

 package homework.dao;import java.security.*;/* * MD5 算法 * 02-25 by Jason */public class GetMD5 { //全局数组 private final static String[] strDigits = { "0", "1", "2", "3", "4

2009-05-23 18:22:00 1251

原创 Java读取Excel文件

 package homework.dao;import homework.model.UserInfo;import java.io.*;import java.text.DateFormat;import java.util.*;import org.apache.poi.*;import org.apache.poi.ss.usermodel.Cell;

2009-05-23 18:20:00 2830 1

原创 const与指针

看个小例子 const int *p;与int * const p这两个声明的中文名称常常搞得混乱不堪。第一个声明的const是声明说明符,它修饰p所指向的对象,但p仍然是可变的,这意味着p是一个指向常量的指针,简称常量指针。第二个声明的const是声明符的一部分,它修饰的对象是p,这意味着p是一个常量,而且是一个指针类型的常量,简称指针常量。指针常量又常常被人称为“常指针”或“常

2008-11-24 12:03:00 471

原创 cout缓冲机制(2)

#include    using std::cout;  using std::endl;  using namespace std;  int i=1; int m()  {      cout"p";      return i++;  }  int main()  {      cout"m()""a""b""c"    retu

2008-11-24 11:47:00 569

原创 cout缓冲机制

#include    int main()  {      using std::cout;     using std::endl;     int i = 0;      cout "i="" i++="" i--="    return 0;  }  程序结果:(VS 2005下) i=0 i++=-1 i--=0cout的输出是先从右往

2008-11-24 11:45:00 854

转载 珍惜生活!

有些人毕生追求的却是有些人与生俱来的,在生命完结的时候,有些人得到了他所毕生追求的而有些人却失去了他与生俱来的。 在年轻的时候永远不要停息生命的脚步,永远不要安于现状,或许一个人可以失去美丽的青春,因为青春终究是会失去的,但是时间是不会停止的。 永远不要失去自己的梦想和前进的方向,永远不要失去自己的人格与价值的尊严,要永远对得起自己和自己生活的每一天,永远,永远……               

2008-10-01 20:37:00 420

原创 fork()函数的主要实现(2)

 // 为新进程取得不重复的进程号last_pid,并返回在任务数组中的任务号(数组index)。 intfind_empty_process (void){  int i;repeat:  if ((++last_pid)     last_pid = 1;  for (i = 0; i     if (task[i] && task[i]->

2008-10-01 02:07:00 444

原创 fork()函数的主要实现(1)

 // 复制进程。 intcopy_process (int nr, long ebp, long edi, long esi, long gs, long none,          long ebx, long ecx, long edx,          long fs, long es, long ds,          long eip, long 

2008-10-01 02:04:00 576

转载 怎样规划你的毕业后的人生

 我今年39岁了, 25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训。现在开一个小公司,赚的钱刚够养家糊口的。看看这些刚毕业的学生,对前景也很迷茫,想抛砖引玉,谈谈自己的看法,局限于理工科的学生,我对文科的不懂,身边的朋友也没有这一类型的。   91年研究生毕业,那时出路就是1种:留在北京的国营单位,搞一个北京户口,这是最好的选择。到后来的2~3年内,户口落定了,又分

2008-07-29 14:12:00 677 1

转载 程序员的烦恼--写给展望2008的程序员们(转)

 让人敬佩而又怜惜的程序员们,2008你们又有什么新的打算。你们是不是在新技术的十字路口徘徊,你们是不是在市场的洪流中迷失方向,你们是不是暗下决心规划自己的未来。每一个称为程序员的人,都怀有一颗充满激情的心,他们希望自己智慧的火花能够画过长空,照耀一片天地。然而,世界是公平而又残酷的,有多少程序员能完成自己的心愿,哪怕是在洋洋软件的大海中激起一朵涟漪。当然,我在这里不是要给大家唱一曲悲凉的情歌

2008-07-28 19:30:00 472

原创 数据结构之排序

/* *@date:08-07-11 *@descript:几种常用排序的实现与应用 **/import java.io.*;import java.util.Random;public class Sort{ public Sort() { } // 冒泡排序 public void bubbleSo

2008-07-12 10:12:00 770

原创 数据结构之查找

/* *@date:08-07-11 *@descript:折半查找,插入跟删除算法 **/public class BinaryInsertEX extends SeqList{ public BinaryInsertEX() { this(0); } public BinaryInsertEX(int n)

2008-07-12 10:11:00 638

转载 我奋斗了18年才和你坐在一起喝咖啡

我奋斗了18年才和你坐在一起喝咖啡           谨以此文送给即将毕业的学子们           我的白领朋友们,如果我是一个初中没毕业就来沪打工的民工,你会和我坐在“星巴克”一起喝咖啡吗?不会,肯定不会。比较我们的成长历程,你会发现,为了一些在你看来唾手可得的东西,我却需要付出巨大的努力。             从我出生的一刻起,我的身份就与你有了天壤之别,因为

2008-07-11 11:04:00 427

原创 数据结构之图

/* *@date:08-07-10 *@descript:图的实现与应用 **/public class AdjMatGraph{ public final int maxWeight=10000;//无穷大常量 public final int[] [] D1=new int[100][100];//最大顶点数 public fi

2008-07-11 11:00:00 1137 1

原创 数据结构之链队列

/* *@date:08-07-08 *@descript:链队列的实现与应用 **/public class LinQueue{ private Node front;//队头 private Node rear;//对尾 public LinQueue()//构造函数,置空队列 { front=rea

2008-07-08 12:12:00 695

转载 李彦宏在北大2008本科生毕业典礼上的发言(转)

尊敬的闵书记、许校长,各位老师,各位家长,亲爱的学弟学妹们,大家上午好。 今天,站在各位同学毕业典礼的讲台上,我最大的感受就是觉得非常的荣幸,在各位生命中最值得纪念的时刻与你们在一起,让我百感交集。我仿佛找回了十七年前,坐在你们中间,对这个再熟悉不过的校园感到万分的留恋,也对即将展开的新的生活有期待、有迷茫甚至有所畏惧。  说实话,我今天除了荣幸之外,还有一些紧张。因为我知道,在座

2008-07-08 11:21:00 572

原创 数据结构之链栈

 /* *@date:08-07-08 *@descript:链栈的实现与应用 **/public class LinStack{ Node top;//栈顶指针  public LinStack()//无参构造函数 {  top=null; } public boolean isEmpty()//判断是否为空 {  return top

2008-07-08 11:10:00 612

原创 数据结构之树

/* *@date:08-07-06 *@descript:树的实现与应用 **/public class TreeNode1{ public String data;//数据元素 public TreeNode1 left,right;//指向左,右孩子的链 public TreeNode1()//无参构造函数

2008-07-07 19:24:00 563

原创 数据结构之顺序队列

/* *@date:08-07-06 *@descript:队列的实现 **/public class SeqQueue{ private static final int defaultSize=10;//默认大小 private int front;//队头 private int rear;//对尾 private int

2008-07-06 19:17:00 602

原创 数据结构之顺序栈

/* *@date:08-07-06 *@descript:栈的实现与应用 **/public class SeqStack{ private static final int defaultSize=10;//全局变量,默认大小 private int top;//栈顶数据元素下标 private int maxStackSize;//

2008-07-06 19:15:00 544

原创 数据结构之单链表

/* *@date:08-07-06 *@descript:单链表的实现与应用 **/public class LinList{ public Node head;//头指针 public Node current;//当前节点位置 private int size;//数据元素个数 public LinList()//构造函数 { h

2008-07-06 19:08:00 542

原创 数据结构之顺序表

/* *@date:08-07-06 *@descript:顺序表的实现与应用 **/public class SeqList { final int defaultSize=10; int maxSize;//表的最大长度 int size;//表的当前长度 Object[] listArray; public Se

2008-07-06 19:05:00 643

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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