
windows编程
文章平均质量分 88
shenzi
优秀是一种习惯!
展开
-
__cdecl __fastcall与 __stdcall
__cdecl __fastcall与 __stdcall 调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的转载 2009-03-04 21:20:00 · 617 阅读 · 0 评论 -
Windows核心编程:同步设备I/O与异步设备I/O
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:同步设备I/O与异步设备I/O 在MicrosoftWindows应用程序中,线程时我们最好的工具,可以用来对工作进行划分。我们可以给每个线程指定一个处理器,这样在多处理器的机器上就可以同时执行多个操作,从而提高吞吐量。原创 2009-10-10 09:34:00 · 3277 阅读 · 3 评论 -
Windows核心编程:在应用程序中使用虚拟内存
Windows核心编程:在应用程序中使用虚拟内存 Microsoft Windows提供以下三种机制来对内存进行操控:虚拟内存:最适合用来管理大型对象数组或大型结构数组。内存映射文件:最适合用来管理大型数据流(通常是文件),以及在同一机器上运行的多个进程之间共享数据。堆:最适合用来管理大量的小型对象。原创 2009-10-14 21:13:00 · 3405 阅读 · 0 评论 -
Windows核心编程:内存体系结构
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:内存体系结构1.进程的虚拟地址空间 每个进程都有自己的虚拟地址空间。对32位进程来说,这个地址空间的大小为4GB,这是因为32位指针可以表示从0x00000000到0xFFFFFFFF之间的任一值,指针在原创 2009-10-13 09:41:00 · 4459 阅读 · 2 评论 -
Windows核心编程:探索虚拟内存
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:探索虚拟内存1.系统信息 操作系统中有许多值是由系统所运行的主机决定的,如页面大小和分配粒度等。我们应该在进程初始化时取得这些值,然后在代码中使用它们。GetSystemInfo函数用来取得与主机相关的值:原创 2009-10-13 20:57:00 · 5028 阅读 · 0 评论 -
Windows核心编程:内存映射文件
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:内存映射文件 与虚拟内存相似,内存映射文件允许开发人员预定一块地址空间区域并给区域调拨物理存储器。不同之处在于内存映射文件的物理存储器来自磁盘上已有的文件,而不是来自系统的页交换文件。一旦把文件映射到地址空间,我们就原创 2009-10-17 19:03:00 · 5036 阅读 · 1 评论 -
Windows核心编程:堆
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:堆 堆非常适合分配大量的小型数据。堆得优点是它能让我们专心解决手头上的问题,而不必理会分配粒度和页面边界这类事情。堆得缺点是分配和释放内存块的速度比其它方式慢,而且也无法再对物理存储器的调拨和撤销调拨进行直接原创 2009-10-17 19:06:00 · 1973 阅读 · 2 评论 -
Windows核心编程:DLL基础
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:DLL基础 动态链接库(dynamic-linklibrary,DLL)一直以来都是Windows操作系统的基石。Windows应用程序编程接口(API)提供的所有函数都包含在DLL中。其中三个最重要的DLL分别是:Kernel32原创 2009-10-19 21:15:00 · 2495 阅读 · 0 评论 -
Windows核心编程:DLL高级技术
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:DLL高级技术1.DLL模块的显示载入和符号链接 图1显示了应用程序如何显示地载入一个DLL并与DLL的符号进行链接:图1:DLL创建过程以及应用程序显式链接到DLL的过程原创 2009-10-26 14:21:00 · 2580 阅读 · 0 评论 -
Windows核心编程:DLL注入和API拦截
作者:shenzi链接:http://blog.youkuaiyun.com/shenzi Windows核心编程:DLL注入和API拦截 在Windows中,每个进程有自己的私有地址空间。当我们用指针来引用内存的时候,指针的值表示的是进程自己的地址空间中的一个内存地址。进程不能创建一个指针来引用属于其它进程的内存。原创 2009-10-28 19:32:00 · 14640 阅读 · 0 评论 -
Windows核心编程:结构化异常处理
作者:shenzi链接:http://blog.youkuaiyun.com/shenzi Windows核心编程:结构化异常处理 结构化异常处理(structured exception handling,SEH)带来的好处是我们在写代码时,可以先集中精力完成软件的正常工作流程。如果在运行的时候出现了什么问题,系统原创 2009-10-28 19:35:00 · 3657 阅读 · 2 评论 -
Windows核心编程
Windows核心编程学习01.Winwods核心编程:字符和字符串处理02.Windows核心编程:内核对象03.Windows核心编程:进程04.Windows核心编程:线程基础05.Windows核心编程:作业06.Windows核心编程:线程调度07.原创 2009-09-27 20:19:00 · 2493 阅读 · 0 评论 -
Windows核心编程:线程调度
作者:shenzi链接:http://blog.youkuaiyun.com/shenzi Windows核心编程:线程调度1.线程的挂起和恢复 在线程的内核对象中有一个值表示线程的挂起计数。调用CreateProcess或者CreateThread时,系统将创建线程内核对象,并把挂起计数初始化为1。这样,就不会给这个线程调度CPU了。这正是我原创 2009-09-27 20:29:00 · 1731 阅读 · 0 评论 -
Windows消息大全(收藏)
Windows消息大全消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,(我转贴的)它在Windows单转载 2009-03-09 19:02:00 · 764 阅读 · 0 评论 -
windows进程中的内存结构(收藏)
在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Globa转载 2009-03-09 13:07:00 · 881 阅读 · 0 评论 -
#pragma once 和#ifndef ... #define ... #endif 比较
最近看Direct3D SDK中的代码,正好对这个还不是很清楚,今天看到就转过来了,方便以后查阅。 原创文章的版权属于作者,出处和作者信息(http://blog.youkuaiyun.com/WinGeek/) C++中防止头文件被多次include 的常见方式有:1) 用#ifndef ... #define ... #endif 宏 #ifndef __MYHEADER_转载 2009-05-04 14:59:00 · 946 阅读 · 0 评论 -
Windows核心编程:字符和字符串处理
作者:shenzi链接:http://hi.youkuaiyun.com/shenziWindows核心编程:字符和字符串处理1.字符编码 ANSI字符,一个字符一字节(8位),最多只能表达256个字符。 UTF的全称是Unicode Transformation Format(Unicode转换格式)。 UTF原创 2009-09-17 08:49:00 · 3169 阅读 · 0 评论 -
Windows核心编程:用户模式下的线程同步
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:用户模式下的线程同步 在以下两种基本情况下,线程之间需要相互通信: 需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性;一个线程需要通知其它线程某项任务已经完成。1.原子原创 2009-09-28 20:41:00 · 1928 阅读 · 2 评论 -
Windows核心编程:用内核对象进行线程同步
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:用内核对象进行线程同步1.概述 用户模式下的同步让线程保持在用户模式下,在用户模式下的进行线程同步的最大好处就是速度非常快。然而它们的确存在一些局限性,使用内核对象进行线程同步用途要广泛得多。然而使用内核对象进行线原创 2009-09-28 20:43:00 · 2251 阅读 · 0 评论 -
Windows核心编程:内核对象
作者:shenzi链接:http://hi.youkuaiyun.com/shenziWindows核心编程:内核对象 1.对象和句柄 对象是静态定义的对象类型的单个运行时实例。对象类型包括系统定义的数据类型,在数据类型实例上的操作的函数以及一组对象属性集。 对象为完成下列四种重要的操作系统任务提供了方便的方法:为系统资源原创 2009-09-19 20:36:00 · 4308 阅读 · 3 评论 -
Windows核心编程:进程
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:进程1.进程 1.1进程概念 程序是一系列静态指令,而进程是由执行程序实例的线程使用的一系列资源的容器(container)。从最高抽象层上来说,Windows进程的组成如下:专用的虚拟地址空间(包括程序代原创 2009-09-24 19:29:00 · 2671 阅读 · 1 评论 -
Windows核心编程:线程基础
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:线程基础2.线程 2.1线程概念 线程包括下面的必要组件:CPU寄存器的内容,它表示寄存器的状态;两个栈:一个是以内核模式执行时被线程使用,另一个则是以用户模式执行时被线程使用;被称为“本机线程存原创 2009-09-24 19:36:00 · 3462 阅读 · 4 评论 -
Windows核心编程:作业
作者:shenzi链接:http://blog.youkuaiyun.com/shenziWindows核心编程:作业1.作业 Windows提供了一个作业(job)内核对象,它允许我们将进城组合在一起并创建一个“沙箱”来限制进城能够做什么。最好将作业对象想象成一个进程容器。但是创建只包含一个进程的作业同样非常有用,因为这样可以对进程施加平时不能施加的限制原创 2009-09-25 14:06:00 · 2066 阅读 · 1 评论 -
七巧板 Chi7ren V0.1
Chi7ren Version 0.1 著名哲学家伯利克里:”一个有思想,但是不能表达的人,如同自己没有思想。“前言: 前阵子看《COM技术内幕》,知道提供的最后一个程序是“七巧板”程序,当时看前几章的时候也很期待,那个Tangram程序会是怎么样的?看了介绍好像还有GDI版和OpenGL版,可以选择。甚是期待,但原创 2009-12-15 20:34:00 · 3438 阅读 · 5 评论