windows sdk学习笔记(3)
1. windows sdk程序,所有的逻辑处理,都应该是在对消息的响应中完成处理,而不是winMain中,在消息循环启动后。
2. 内存映射文件保留了一个地址空间区域,在需要时将它提交到物理器,一旦文件被映射,就可以认为整个文件被加载到了内存中,可以像访问内存一样访问文件的内容,使用内存映射的目的一般有3个:
1. 系统使用内存映射文件来加载和执行.exe和dll文件。(节省空间,降低启动时间)
2.使用内存映射文件访问磁盘上的数据,避免申请缓冲区与执行文件I/O.
3. 在多个进程间共享数据。
3.使用内存映射文件分为两步:
1) CreateFileMapping,创建内存映射文件内核对象,告诉OS,所需要的物理内存大小,此步骤决定了内存映射文件的用途:映射文件(文件句柄), 共享内存(-1)。
2)映射文件 使用MapViewOfFile映射文件对象的全部或部分到进程的地址空间。
4. UnmapViewOfFile+CloseHandle(撤销映射,销毁句柄)。
5. FlushViewOfFile(清空缓冲区s)。
6. 当内存映射是被用以创建共享内存时,其中一个进程只能使用OpenFilemapping来打开,指定名字的共享内存,而不是使用create...来“创建”
6. 一个DC是一个结构,它定义了一系列图形对象的集合以及它们相关的属性,以及影响输出效果的一些图形模式。这些图形对象包括一个画线的笔,一个填充和painting的画刷,一个用来向屏幕拷贝的位图,一个定义了一系列颜色集合的调色板,一个用来剪裁等操作的区域,一个做painting和drawing操作的路径。