windows 程序的本体与操作系统之间的关系

 1 WinMain(hInst,hPrev,……)
2 {
3 MSG msg;
4 RegisterClass(……);
5 CreateWindow(……);
6 ShowWindow(……);
7 UpdateWindow(……);
8 while(GetMessage(……))
9 {
10 TranslateMessage(……);
11 DispatchMessage(……);
12 }
13 return msg.wParam;
14 }
15
16 Window Procedure
17
18 WndProc(hwnd,msg,wParam,lParam)
19 {
20 switch(msg):
21 case WM_CREATE:……;
22 case WM_COMMAND:……;
23 case WM_LBUTTONDOWN:……;
24 case WM_PAINT:……;
25 case WM_CLOSE:……;
26 case WM_DESTROY:……;
27 default:return DefWiindowProc(……);
28 }

操作系统维持两个消息队列,系统消息队列和应用消息队列,Windows操作系统将外界输入的消息放入到系统消息队列中,将应用产生的消息放到应用消息队列中,这些都是Windows的USER
Module 模块的协助下完成的,然后Windows应用程序的winmain函数是主体,大概内容如下:

代码中的GetMessage从消息队列中获取消息,然后再DispatchMessage中就将消息作为参数传给WndProc函数了。WndProc是一个回调函数,在USER
Module中有指向该函数的指针,在特定的事件或条件发生时由操作系统就调用的WndProc,这时候就将传进来的指定消息消息进行了处理。

windows 程序的本体与操作系统之间的关系,码迷,mamicode.com

时间: 2024-11-03 14:21:08

windows 程序的本体与操作系统之间的关系的相关文章

Java、JVM和操作系统之间的关系,写给新人,

来张图:这个帖子写给新人的,老玩家就直接无视他,因为这个完完全全是白话基础原理. 解释:上面的图是从上往下依次调用的关系. 操作系统(Windows/Linux)管理硬件,让硬件能够正常.合理的运行,当然各种硬件的驱动实现了操作系统的接口,操作系统调用这些接口就能管理硬件,操作系统还像程序员提供了一层接口,叫做系统呼叫层,程序员可以面向这一层的接口编程,来实现对计算机的控制,而不同的操作系统(或者说不同的CPU架构)所提供的接口都是不一样的,Windows和Linux提供给的那肯定是完全不一样的

java程序、JVM、操作系统之间的

RPC和Socket,RMI和RPC之间的关系

远程通信机制RPC与RMI的关系 http://blog.csdn.net/zolalad/article/details/25161133       1.RPC RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC不依赖于具体的网络传输协议,tcp.udp等都可以.由于存在各式各样的变换和细节差异,相应的rpc也派生出了各式远程过程通信协议.RPC是跨语言的通信标准,SUN和

cpu 内存 硬盘 指令以及他们之间的关系

CPU对整个计算机系统的运行是至关重要的,它不仅要与计算机的其他功能部件进行信息交换,还要控制这些功能部件的操作.也就是说cpu是一台计算机的运算核心和控制核心. 内存是与cpu直接交换数据的内部存储器,它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介但是内存不能保留数据.当电源关闭时,就会失去数据的储存.如果需要保存数据,就必须把它们写入一个长期的存储设备中,如硬盘. 硬盘采用的持久储存方式,跟内存的区别在于内存断电即失去数据的储存.但是相比较于内存,硬盘

oracle sid,instance_name,db_name,oracle_sid之间的关系

[一]对ORACLE_SID的理解 --------------------------------------------------------------------------------Oracle中SID的作用类似于一个"开关变量"---引导Oracle在实例启动时如何去默认位置下读取适当的参数文件并加载,以正确启动实例. 我们知道实例的启动需要指定pfile/spfile(Oracle9i之前是使用pfile--即init文件,从9i开始就默认使用spfile--即服务器

Windows程序调试系列: 使用VC++生成调试信息 转

Windows程序调试系列: 使用VC++生成调试信息 ZhangTao,[email protected], 译自 “Generating debug information with Visual C++”,Oleg Starodumov 出处: http://www.cnblogs.com/itrust/archive/2006/08/17/479603.aspx 引子 当我们使用调试器来调试程序时,我们希望能够单步调试到源代码中,在代码中设置断点,观察变量的值(包括用户自定义的复杂类型的

Windows程序运行原理

Windows程序运行原理 1.应用程序,操作系统,硬件之间的关系 这里涉及到消息及消息队列, 操作系统是通过消息机制(Message)来将感知到的事件传递给应用程序的. 操作系统将每个事件都包装成一个称为消息的结构体MSG来传递给应用程序. 操作系统对事件做出反应的过程就叫做消息响应 typedef struct tagMSG { // msg HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt

Windows程序开发的背景知识---Windows消息机制

一,消息 消息(Message)指的就是Windows 操作系统发给应用程序的一个通知,它告诉应用程序某个特定的事件发生了.比如,用户单击鼠标或按键都会引发Windows 系统发送相应的消息.最终处理消息的是应用程序的窗口函数,如果程序没处理的话操作系统有默认函数将会作出处理.      从数据结构的角度来说,消息是一个结构体,它包含了消息的类型标识符以及其他的一些附加信息.系统定义的结构体MSG用于表示消息,MSG 具有如下定义形式: typedef struct MSG {      HWN

MFC Windows程序开发究竟是什么?

MFC Windows程序开发究竟是什么? MFC是一个Application Framework.他是一个完整的程序模型. 什么是MFC?MFC是微软公司出品一个Application Framework.基本上,我们可以认为Application Framework就是一个完整的程序模型,具备标准软件所需的一切基本功能,比如文件存取.打印等等.从C++语言层面来看,Application Framework就是有一整套组合好的“对象”构建起来的模型.从C++语法上来说,MFC就是一套微软提供