自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows的内存内存管理函比较

        GlobalAlloc/LocalAlloc:         在16位Windows中是有区别的,因为在16位windows用一个全局堆和局部堆来管理内存,每一个应用程序或dll装入内存时,代码段被装入全局堆,而系统又为每个实例从全局堆中分配了一个64kb的数据段作为该实例的局部堆,用来存放应用程序的堆栈和所有全局或静态变量。而LocalAlloc/GlobalAlloc就是

2006-11-24 16:01:00 618

转载 浅谈一下Heap

Heap与Stack正好相反,你需要手动来管理每一块内存的申请和释放(在没有垃圾收集机制的情况下),而对于C/C++程序员来说,操作Heap的方式实在是太多了点。下面是几乎所有可以操作堆内存的方法的列表:malloc/freenew/deleteGlobalAlloc/GlobalFreeLocalAlloc/LocalFreeHeapAlloc/HeapFree 其中

2006-11-24 14:42:00 742

转载 JIURL玩玩Win2k内存篇 分页机制 (三)

8种转换由于页表被映射到了0xc0000000 开始的4MB地址空间。所以我们也可以象CPU那样完成虚拟地址到物理地址的转换。系统按照对应虚拟空间的先后顺序,把一个进程的页表映射在0xc0000000 开始的4MB地址空间中,把页目录映射在0xc0300000 开始的4KB地址空间中。于是我们可以做如下几种地址的相互转换。1 虚拟地址->虚拟地址对应的PDE地址PDE_Address=(Virtu

2006-11-24 14:34:00 694

转载 JIURL玩玩Win2k内存篇 分页机制 (二)

进程的页目录和页表在虚拟地址空间中的位置     当执行一条访问内存的指令时,如果寄存器中的分页标志位已经被设置,CPU就自动完成虚拟地址到物理地址的转换,来完成该指令。CPU在转换地址过程中,并不需要页目录和页表的虚拟地址。但是分页标志位被设置之后,CPU会把所有指令中的地址当做虚

2006-11-24 14:33:00 667

转载 JIURL玩玩Win2k内存篇 分页机制 (一)

基本概念    Windows 2000 使用基于分页机制的虚拟内存。每个进程有4GB的虚拟地址空间。基于分页机制,这4GB地址空间的一些部分被映射了物理内存,一些部分映射硬盘上的交换文件,一些部分什么也没有映射。程序中使用的都是4GB地址空间中的虚拟地址。而访问物理内存,需要使用物理地址。下面我们看看什么是物理地址,什么是虚拟地址。物理地址 (physical address): 放在寻址总

2006-11-24 14:32:00 699

原创 深度解析VC中的消息传递机制(下)

消息的接收    消息的接收主要有3个函数:GetMessage、PeekMessage、WaitMessage。     GetMessage原型如下:BOOL GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax);    该函数用来获取与hWnd参数所指定的窗口相关的且wMsgFilterMin和wMsg

2006-11-23 11:18:00 550

转载 深度解析VC中的消息传递机制(上)

摘要:Windows编程和Dos编程,一个很大的区别就是,Windows编程是事件驱动,消息传递的。所以,要学好Windows编程,必须对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的分析。    什么是消息?    消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告

2006-11-23 11:15:00 510

原创 串行通信与重叠I/O

串行口的打开和关闭  Win 32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的声明为:HANDLE CreateFile(LPCTSTR lpFileName, // 文件名 DWORD dwDesiredAccess, // 访问模式 DWORD dwShareMode, /

2006-10-18 15:00:00 969

原创 线程的同步

为什么需要同步  由于同一进程的所有线程共享进程的虚拟地址空间,并且线程的中断是汇编语言级的,所以可能会发生两个线程同时访问同一个对象(包括全局变量、共享资源、API函数和MFC对象等)的情况,这有可能导致程序错误。例如,如果一个线程在未完成对某一大尺寸全局变量的读操作时,另一个线程又对该变量进行了写操作,那么第一个线程读入的变量值可能是一种修改过程中的不稳定值。  属于不同进程的线程在同

2006-10-18 14:58:00 527

转载 多任务、进程和线程

 Windows 3.x的协同多任务 在16位的Windows3.x中,应用程序具有对CPU的控制权。只有在调用了GetMessage、PeekMessage、WaitMessage或Yield后,程序才有可能把CPU控制权交给系统,系统再把控制权转交给别的应用程序。如果应用程序在长时间内无法调用上述四个函数之一,那么程序就一直独占CPU,系统会被挂起而无法接受用户的输入。  因此,在设计

2006-10-18 14:56:00 767

转载 进程间通信

为了能在两个进程之间进行通讯,由以下几种方法可供参考: 1)剪贴板ClipBoard:在16位时代常使用的方式,CWnd中提供支持。2)窗口消息: a)标准的Windows消息: b)专用的WM_COPYDATA消息:3)文件映射(File Mapping):在32位系统中提供的新方法,可用来共享内存.4)动态数据交换(DDE):其方式是再一块全局内存中手工放置大量的数据,然后使用窗口消息传递内存

2006-10-18 09:18:00 561

空空如也

空空如也

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

TA关注的人

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