内存管理 消息循环 com技术 分布式架构

内存管理有三种方式:
1. 虚拟内存,VirtualAlloc之类的函数
2. 堆,Heapxxx函数,malloc,new等
3. 内存映射文件,Memory Mapped File

Windows系统上的VirtualAlloc, HeapAlloc和malloc,new的区别

启动应用程序。当一个应用程序启动时,系统会先调用CreateFile来打开磁盘上的.exe文件。接着系统会调用 CreateFileMapping来创建文件映射对象。最后系统会以新创建的进程的名义调用MapViewOfFileEx(并传入SEC_IMAGE 标志),这样就把.exe文件映射到了进程的地址空间中。值所以调用MapViewOfFileEx而不是MapViewOfFile,是为了把文件映射 到指定的基地址,这个基地址保存在.exe的PE文件头中。系统然后创建进程的主线程,在映射得到的视图中取得可执行代码的第一个字节的地址,把该地址放 到线程的指令指针中,最后让CPU开始执行其中的代码。

与 虚拟内存相似,内存映射文件允许开发人员预定一块地址空间区域并给区域调拨物理存储器。不同之处在于内存映射文件的物理存储器来自磁盘上已有的文件,而不 是来自系统的页交换文件。一旦把文件映射到地址空间,我们就可以对它进行访问,就好像整个文件都已经在被载入内存一样。
《windows核心编程》 17章 内存映射文件
Windows核心编程:内存映射文件

PE文件格式详解(一)

VC++深入详解:钩子函数
SendMessage() 发出的消息 PreTranslateMessage() 不一定能接收到!
PostThreadMessage实现多线程间消息通信
PreSubclassWindow详细分析

COM编程入门
COM组件的运行机制,即COM是怎么跑起来的

高级软件工程(DNA、MTS、MSMQ)

发表评论

邮箱地址不会被公开。 必填项已用*标注