<2017年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

随笔分类 -  win32

摘要:内存映射文件允许开发人员预订一块地址空间并为该区域调拨物理存储器,与虚拟内存不同的是,内存映射文件的物理存储器来自磁盘中的文件,而非系统的页交换文件。将文件映射到内存中后,我们就可以在内存中操作他们了,就像他们被载入内存中一样。 内存映射文件主要有三方面的用途: 1:系统使用内存映射文件来将exe或 阅读全文
posted @ 2018-05-18 09:16 史D芬周 阅读(772) 评论(0) 推荐(0)
摘要:谈谈windows线程栈。 当系统创建线程时会为线程预订一块地址空间区域,注意仅仅是预订。默认情况下预定的这块区域的大小是1MB,虽然预订这么多,但是系统并不会给全部区域调拨物理存储器。默认情况下,仅仅为两个页面挑拨。x86系统下每个页面是4KB.其他页面会在访问的时候由系统调拨。这仅仅是在创建线程 阅读全文
posted @ 2018-05-18 09:15 史D芬周 阅读(813) 评论(0) 推荐(0)
摘要:堆 前面我们说过堆非常适合分配大量的小型数据。使用堆可以让程序员专心解决手头的问题,而不必理会分配粒度和页面边界之类的事情。因此堆是管理链表和数的最佳方式。但是堆进行内存分配和释放时的速度比其他方式都慢,而且无法对物理存储器的调拨和撤销调拨进行控制。 什么是堆? 在系统内部堆就是一块预定的地址空间区 阅读全文
posted @ 2018-05-18 09:15 史D芬周 阅读(590) 评论(0) 推荐(0)
摘要:Windows内存体系结构 理解Windows内存体系结构是每一个励志成为优秀的Windows程序员所必须的。 进程虚拟地址空间 每个进程都有自己的虚拟地址空间。对于32位操作系统来说,它的地址空间是4GB。这是因为32位指针可以表示从0x00000000到0xFFFFFFFF之间的任一值。对于64 阅读全文
posted @ 2018-05-18 09:13 史D芬周 阅读(966) 评论(0) 推荐(0)
摘要:Windows线程池 上一篇博文我们介绍了IO完成端口。得知IO完成端口可以非常智能的分派线程。但是IO完成端口仅对等待它的线程进行分派,创建和销毁线程的工作仍然需要我们自己来做。 我们自己也可以创建线程,但是涉及到线程的编码操作比较复杂,容易出现差错。为了简化程序员的工作,Windows提供了一个 阅读全文
posted @ 2018-05-18 09:13 史D芬周 阅读(498) 评论(0) 推荐(0)
摘要:同步设备IO与异步设备IO之异步IO介绍 设备IO与cpu速度甚至是内存访问相比较都是比较慢的,而且更不可预测。虽然如此,通过使用异步设备IO我们仍然能够创造出更高效的程序。 同步IO时,发出IO请求的线程会被挂起。而异步IO时发出请求的线程不会被挂起,而是可以继续执行。异步IO请求传给了设备驱动程 阅读全文
posted @ 2018-05-18 09:12 史D芬周 阅读(755) 评论(0) 推荐(0)
摘要:同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行。 异步IO是指:线程发起IO请求后并不会挂起而是继续执行。IO完毕后会得到设备的通知。而IO完成端口就是实现这种通知的很好的一种方式。 线程是我们开发高性能、响应性好的一个必不可少的工具。这样在多处理器上就可以同时执行多 阅读全文
posted @ 2018-05-18 09:11 史D芬周 阅读(623) 评论(0) 推荐(0)
摘要:使用内核对象进行线程同步。 前面我们介绍了用户模式下线程同步的几种方式。在用户模式下进行线程同步的最大好处就是速度非常快。因此当需要使用线程同步时用户模式下的线程同步是首选。 但是用户模式下的线程同步也存在缺点。如InterLocked系列函数只能对一个值进行操作。关键段虽然可以对一段代码进行操作, 阅读全文
posted @ 2018-05-18 09:10 史D芬周 阅读(888) 评论(0) 推荐(0)
摘要:用户模式下的线程同步 系统中的线程必须访问系统资源,如堆、串口、文件、窗口以及其他资源。如果一个线程独占了对某个资源的访问,其他线程就无法完成工作。我们也必须限制线程在任何时刻都能访问任何资源。比如在一个线程读内存时要限制其他线程对此块内存进行写入。 线程之间的通信很重要,尤其是在以下两种情况下: 阅读全文
posted @ 2018-05-18 09:09 史D芬周 阅读(529) 评论(0) 推荐(0)
摘要:第二部分:工作机理 第一章:进程 上一章介绍了内核对象,这一节开始就要不断接触各种内核对象了。首先要给大家介绍的是进程内核对象。进程大家都不陌生,它是资源和分配的基本单位,而进程内核对象就是与进程相关联的一个数据结构。操作系统内核通过它管理进程,也就是操作系统原理上介绍的进程控制块(PCB)。举个例 阅读全文
posted @ 2018-05-18 09:08 史D芬周 阅读(1437) 评论(0) 推荐(0)
摘要:线程基础 与前面介绍的进程一样,线程也有两部分组成。一个是线程内核对象。它是一个数据结构,操作系统用它来管理线程以及用它来存储线程的一些统计信息。另一个是线程栈,用于维护线程执行时所需的所有函数参数和局部变量。位于同一个进程的线程共享进程的地址空间且它们共享进程句柄表。因为句柄表是针对进程的。进程需 阅读全文
posted @ 2018-05-18 09:08 史D芬周 阅读(520) 评论(0) 推荐(0)
摘要:内核对象 本章讨论的是相对抽象的概念,不涉及任何具体的内核对象的细节而是讨论所有内核对象的共有特性。 首先让我们来了解一下什么是内核对象。内核对象通过API来创建,每个内核对象是一个数据结构,它对应一块内存,由操作系统内核分配,并且只能由操作系统内核访问。在此数据结构中少数成员如安全描述符和使用计数 阅读全文
posted @ 2018-05-18 09:07 史D芬周 阅读(717) 评论(0) 推荐(0)
摘要:错误处理 我们写的函数会用返回值表示程序执行的正确与否,使用void,就意味着程序一定不会出错。Bool类型标识true时为真,false时为假。其他类型根据需要可以定义成不同意义。 Windows除了使用返回值标识函数执行情况,外还引入了错误代码机制。返回值指出函数已发生一个错误。要查看具体是什么 阅读全文
posted @ 2018-05-18 09:06 史D芬周 阅读(502) 评论(0) 推荐(0)
摘要:第二章:字符和字符串处理 使用vc编程时项目--》属性--》常规栏下我们可以设置项目字符集合,它可以是ANSI(多字节)字符集,也可以是unicode字符集。一般情况下说Unicode都是指UTF-16。也就是说每个字符编码为两个字节。65535个字符可以表示世界上大部分的语言。为了软件使国际化大家 阅读全文
posted @ 2018-05-18 09:06 史D芬周 阅读(652) 评论(0) 推荐(0)
摘要:WinSDK是编程中的传统难点,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制……WinSDK是编程中的传统难点,曾经听有一个技术不是很好的朋友乱说什么给你API谁都会用,其实并非那么简单,个人写的Wi 阅读全文
posted @ 2018-05-17 17:20 史D芬周 阅读(2800) 评论(0) 推荐(0)
摘要:1 开发语言抉择 1.1 关于开发Win32 程序的语言选择 C还是C++ 在决定抛弃MFC,而使用纯Win32 API 开发Window桌面程序之后,还存在一个语言的选择,这就是是否使用C++。C++作为C的超集,能实现所有C能实现的功能。其实反之亦然,C本身也能完成C++超出的那部分功能,只是可 阅读全文
posted @ 2018-05-14 16:35 史D芬周 阅读(11166) 评论(1) 推荐(1)
摘要: 阅读全文
posted @ 2018-05-14 16:04 史D芬周 阅读(350) 评论(0) 推荐(0)
摘要:我曾经说过一句致理名言:涂鸦是人生一大乐趣。 只要你懂得涂鸦之道,涂鸦是非常好玩的。在窗口上画多了,不爽了,想不想在桌面上画? 不要惊讶,这是可以的。 Graphics类可以用一个静态方法FromHwnd来创建实例,如果想在桌面上涂鸦,只要得到桌面的句柄就可以了。那么如何得到桌面的句柄呢?要用到一个 阅读全文
posted @ 2018-03-31 14:30 史D芬周 阅读(504) 评论(0) 推荐(0)
摘要:以往,我们肯定知道,在搞Web应用的时候,我们都可能会遇到提供文件下载的功能需求,比如我以前做的一个客户许可证管理系统,客户购买ERP系统后,通常我们会根据客户的机器的机器码生成一个许可文件,而这个许可文件是有时间限制的,一年后会过期,过期之后客户需要重新获取许可,以表示继续使用我们的超级牛B产品, 阅读全文
posted @ 2018-03-31 14:28 史D芬周 阅读(433) 评论(0) 推荐(0)
摘要:你一看标题,肯定会想:靠!太菜了。是啊,很菜,简直菜歪歪了。自从被某些人封为“高手”起,我就丧失了当小白的机会,更别说当菜鸟了。其实,成为一名小白没有什么不好,是吧?无知无欲,人生更多欢乐,知得越多越痛苦,真的是这样,因为很多人总是知道他本不应该知道的东西,所以他们就活得很痛苦。 有一位挚友不知道做 阅读全文
posted @ 2018-03-31 14:26 史D芬周 阅读(356) 评论(0) 推荐(0)