您的位置:首页 > 编程语言 > C语言/C++

VC++之Windows程序运行原理

2009-01-09 17:49 351 查看
1.基于事件驱动,包装成消息,放到消息队列中。
2.应用程序要硬件做事,就调用操作系统的API(功能函数)。
3.操作系统将感知到的事件交给应用程序处理,处理过程就是消息响应。
4.操作系统怎样将感知到的事件传递给应用程序?----消息机制(Message)实现。
5.操作系统将每一个事件包装成一个结构体MSG(消息)来传递给应用程序。

功能函数;
typedef struct tagMSN{
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
}MSG;

Tip:
用户对电脑输入设备进行动作产生事件;
操作系统感知事件,并按预先对这个事件定义好的结构体MSG(消息)样式进行包装,再传递给应用程序;
应用程序对接收到的的结构体MSG(消息)进行处理,调用操作系统的API,让操作系统驱动电脑进行工作;

操作系统通过结构体MSG和用户交互

句柄

句柄就是资源的标识
窗口,图标,


WM(Windows Message)开头
从变量和变量的类型来区分变量的用途

消息队列
每一个应用程序,操作系统都会给它建立一个消息队列;
消息队列是先进行出的缓冲区,它是某种变量类型的数组,消息队列数组中的每一个元素都是一条消息,
操作系统将生成的每一个消息按先后顺序放进消息队列里;
应用程序总是取走第一条消息,消息队列中的消息依次前移;
应用程序取得消息后就知道用户的操作和程序的变化;
应用程序就对取得的消息进行处理,即消息响应,这是通过编码实现的,即windows程序
主要的代码区,用户就针对收到的消息编写特定的代码进行消息响应;
在用户编写代码的过程中,又会调用其它Windows API;

Tip:
操作系统通过消息机制将事件放在消息队列中,等待应用程序来取;
应用程序取得事件进行处理(消息响应),这个处理过程就需要用户对事件编写代码,
调用操作系统API实现相应的功能;

Tip:
掌握消息本身,不同的消息代表用户操作和程序状态;
掌握操作系统API,对特定的消息,要让操作系统执行特定的功能去响应这个消息;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: