等雁归来

Just do it.

导航

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操作的路径。

7. 内存DC,是一个虚拟的内存设备上下文,对它进行绘图等操作,不会显示在屏幕或打印机上,而我们可以在它完成之后,拷贝到屏幕上或打印机上来输出,这样可以避免因为操作而给屏幕带来的闪烁,对于打印机而言,打印只能是从上往下打,而我们在MEMDC中,可以随意进行操作,这样可以输出直接在打印机上输出所达不到的效果.
在窗口上贴图一般总是要用到内存DC,将所有的绘制工作先绘制在内存DC上,然活一次性拷贝到屏幕DC上。

posted on 2010-04-07 21:50  等雁归来  阅读(470)  评论(0编辑  收藏  举报