
Windows核心编程
文章平均质量分 78
Mobidogs
选择重点领域,进行广泛阅读
展开
-
windows消息大全
windows消息大全 消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产转载 2007-01-17 21:59:00 · 1367 阅读 · 0 评论 -
windows核心编程--DLL高级
DLL的进入点函数 一个D L L可以拥有单个进入点函数。系统在不同的时间调用这个进入点函数,这个问题将在下面加以介绍。这些调用可以用来提供一些信息,通常用于供D L L进行每个进程或线程的初始化和清除操作。如果你的D L L不需要这些通知信息,就不必在D L L源代码中实现这个函数。例如,如果你创建一个只包含资源的D L L,就不必实现该函数。如果确实需要在D L L中接受通知信息,可以转载 2007-01-17 22:38:00 · 1569 阅读 · 0 评论 -
windows核心编程--虚拟内存
Wi n d o w s提供了3种进行内存管理的方法,它们是: • 虚拟内存,最适合用来管理大型对象或结构数组。 • 内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行的多个进程之间共享数据。 • 内存堆栈,最适合用来管理大量的小对象。虚拟内存的状态 Wi n d o w s函数G l o b a l M e m o r y S t a t u s可用于转载 2007-01-17 22:33:00 · 1667 阅读 · 1 评论 -
windows核心编程--内存结构
进程的虚拟地址空间 每个进程都被赋予它自己的虚拟地址空间。对于3 2位进程来说,这个地址空间是4 G B,因为3 2位指针可以拥有从0 x 0 0 0 0 0 0 0 0至0 x F F F F F F F F之间的任何一个值。这使得一个指针能够拥有4 294 967 296个值中的一个值,它覆盖了一个进程的4 G B虚拟空间的范围。 由于每个进程可以接收它自己的私有的地址空间,因此当进程转载 2007-01-17 22:32:00 · 1707 阅读 · 0 评论 -
windows核心编程--线程
进程是由两个部分构成的,一个是进程内核对象,另一个是地址空间。同样,线程也是由两个部分组成的:• 一个是线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。 • 另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个寿命期都在该进程中。如果在单进程环转载 2007-01-17 22:17:00 · 1124 阅读 · 0 评论 -
windows核心编程--字符集
字符unicode与windows 1 软件的本地化要解决的真正问题,实际上就是如何来处理不同的字符集。以前我们习惯与用单字节字符集来编程.2 单字符集:将文本串作为一系列单字节字符来进行编码,并在结尾处放上一个零。(每个字符用一个字节来表示)3 双字节字符集(D B C S ):在双字节字符集中,字符串中的每个字符可以包含一个字节或包含两个字节。4 unicode字符集:U n i c o d转载 2007-01-17 22:09:00 · 1443 阅读 · 0 评论 -
windows核心编程--内存堆栈
对内存进行操作的第三个机制是使用堆栈。堆栈可以用来分配许多较小的数据块。例如,若要对链接表和链接树进行管理,最好的方法是使用堆栈,堆栈的优点是,可以不考虑分配粒度和页面边界之类的问题,集中精力处理手头的任务。堆栈的缺点是,分配和释放内存块的速度比其他机制要慢,并且无法直接控制物理存储器的提交和回收。 从内部来讲,堆栈是保留的地址空间的一个区域。开始时,保留区域中的大多数页面没有被提交物理存储器。当转载 2007-01-17 22:36:00 · 1743 阅读 · 0 评论 -
windows核心编程--内存映射文件
与虚拟内存一样,内存映射文件可以用来保留一个地址空间的区域,并将物理存储器提交给该区域。它们之间的差别是,物理存储器来自一个已经位于磁盘上的文件,而不是系统的页文件。一旦该文件被映射,就可以访问它,就像整个文件已经加载内存一样。 内存映射文件可以用于3个不同的目的: • 系统使用内存映射文件,以便加载和执行. e x e和D L L文件。这可以大大节省页文件空间和应用程序启动运行所需的转载 2007-01-17 22:34:00 · 2484 阅读 · 0 评论 -
windows核心编程--线程高级
暂停和恢复线程的运行在线程内核对象的内部有一个值,用于指明线程的暂停计数。当调用C r e a t e P r o c e s s或C r e a t e T h r e a d函数时,就创建了线程的内核对象,并且它的暂停计数被初始化为1。当线程的暂停计数是0的时候,除非线程正在等待其他某种事情的发生,否则该线程就处于可调度状态。恢复线程,可以用将调用R e s u m e T h r e a d转载 2007-01-17 22:18:00 · 1245 阅读 · 0 评论 -
windows核心编程--windows程序的执行
Windows 应用程序的执行 Windows 支持两种类型的应用程序。一种是基于图形用户界面( GUI )的应用程序,另一种是基于控制台用户界面( CUI )的应用程序。 ( 两者间可以相互转化 , 没有明确的界限 , 就是说可以让 CUI 程序中可以有 Dialog 界面等 , 而 GUI 界面中也可以有 console 来输出信息 ) 对于一个应用程序: 一 操作转载 2007-01-17 22:13:00 · 1357 阅读 · 0 评论 -
windows核心编程--函数返回错误
1 windows程序错误的处理机制 windows API的返回类型 数据类型 表示失败的值 V O I D 该函数转载 2007-01-17 22:08:00 · 1157 阅读 · 0 评论 -
windows核心编程--纤程
比线程更小的单位,好像用的不多的哦纤程的操作 首先要注意的一个问题是,实现线程的是Wi n d o w s内核。操作系统清楚地知道线程的情况,并且根据M i c r o s o f t定义的算法对线程进行调度。纤程是以用户方式代码来实现的,内核并不知道纤程,并且它们是根据用户定义的算法来调度的。由于你定义了纤程的调度算法,因此,就内核而言,纤程采用非抢占式调度方式。 需要了解的下一个问题是转载 2007-01-17 22:31:00 · 1825 阅读 · 0 评论 -
windows核心编程--线程池
(暂无)转载 2007-01-17 22:29:00 · 1283 阅读 · 0 评论 -
windows核心编程--作业
作业: 作业可以看作是一组进程的容器,把这些进程当作一个整体,对这个整体整个加入更多的限制. 因为Wi n d o w s并不维护进程之间的父/子关系。即使父进程已经终止运行,子进程仍然会继续运行。Microsoft Windoss 2000提供了一个新的作业内核对象,使你能够将进程组合在一起,并且创建一个“沙框”,以便限制进程能够进行的操作。最好将作业对象视转载 2007-01-17 22:15:00 · 1554 阅读 · 0 评论 -
windows核心编程--内核对象
简单地说: 内核对象是系统的一种资源。系统对象一旦产生,任何应用程序都可以开启并且使用该对象。系统给内核对象一个计数值作为管理只用,内核对象包括: event,mutex,semaphore,file,file-mapping,preocess,thread.这些内核对象每次产生都会返回一个handle,作为标示,每使用一次,对应的计数值加1,调用CloseHandle可以结束内核对象的使用。转载 2007-01-17 22:10:00 · 1325 阅读 · 0 评论 -
windows核心编程--精华
学习《 windows 核心编程》 u 字符集,一切软件的基础,单字集(用 1 个字节表示一个字符),双字节字符集( DBCS, 并不是用 2 个字节表示一个字符哦,而是用 1 个, 2 个,或多个字节的混合来表示字符),宽字节字符集( unicode 用 2 个字节来表示一个字符)。对 windows 操作系统来说, windows 98 内核用 ANSI , wi转载 2007-01-17 22:41:00 · 2515 阅读 · 0 评论 -
windows核心编程--线程的同步
线程的同步由于同一进程的所有线程共享进程的虚拟地址空间,并且线程的中断是汇编语言级的,所以可能会发生两个线程同时访问同一个对象(包括全局变量、共享资源、API函数和MFC对象等)的情况,这有可能导致程序错误。属于不同进程的线程在同时访问同一内存区域或共享资源时,也会存在同样的问题。因此,在多线程应用程序中,常常需要采取一些措施来同步线程的执行。需要同步的情况包括以下几种: 在多个线程同时访问同转载 2007-01-17 22:26:00 · 1550 阅读 · 0 评论 -
windows核心编程--进程
进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: • 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。 • 另一个是地址空间,它包含所有可执行模块或 D L L 模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。 进程是不活泼的。若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,该线程负责执行转载 2007-01-17 22:14:00 · 1273 阅读 · 0 评论 -
windows核心编程--SEH(结构异常处理)
SEH 的工作原理。 Windows 程序设计中最重要的理念就是消息传递,事件驱动。当GUI应用程序触发一个消息时,系统将把该消息放入消息队列,然后去查找并调用窗体的消息处理函数(CALLBACK),传递的参数当然就是这个消息。我们同样可以把异常也当作是一种消息,应用程序发生异常时就触发了该消息并告知系统。系统接收后同样会找它的“回调函数”,也就是我们的异常处理例程。当然,如果我们转载 2007-01-17 22:40:00 · 1776 阅读 · 0 评论