1.1 Windows 程序运行原理(消息循环和响应) *************************************************
* 本文由小鸟飞飞整理发表 <samboy@> *
* 首发网站:蓝丽网 *
* 其他网站转载请保留以上信息,谢谢! *
*************************************************
Windows 的工作方式:
全面地讨论 Windows 的内部工作机制将需要整整一本书的容量,没有必要深入了解所有的技术细节。但是对于windows程序运行的一些根本性的概念,是一个Visual C++程序员所必须掌握的知识。
一,Windows应用程序,操作系统,计算机硬件之间的相互关系。
(原稿这里是一张 图,蓝丽不能贴图,改为文字叙述,也不知道能不能说明白)
输入设备->产生事件->操作系统->发生消息->应 用程序->调用API->输出设备
操作者控制输入设备(如键盘、鼠标)时,操作系统能够感知输入设备状态的变化,然后通 知输出设备执行特定的功能。Windows程序主要是由消息和事件进行驱动,所以做好Windows程序必须要清楚消息和事件的运行,这一点在以后的文章 中会详细介绍。
操作系统和计算机硬件直接进行交互,应用程序开发者通常不需知道其具体实现细节。当应用程序需要和硬件进行交互时只需使用操作 系统提供的API即可。
1.关于API
这里提到一个非常重要的概念:API
应用程序可以通知操作系统执 行某个具体的动作,如操作系统能够控制声卡发出声音,但其并不知道何时发出何种声音,得由应用程序告诉操作系统该发出什么样的声音。在应用程序中要完成某个功能,都是以函数调用的形式实现的,应用程序也是以函数调用的方式来通知操作系统执行相应功能的,操作系统所能够完成的每一个特殊功能通常都有一个函数 与其对应,也就是说,操作系统把它所能完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用叫系统调用,这些函数的集合是Windows 操作系统提供给应用程序编程的接口(Application Programming Interface),简称Windows API。如
CreateWindow就是一个API函数,应用程序中调用这个函数,操作系统就会按照该函数提供的参数信息产生一个相应的窗口。关于这个函 数的详细解释,请参阅MSDN(微软开发编程的开发系统)。
顺便提一下,对于一个真正的程序员来说,不可能死记硬背每一个API函数 及其各参数的详细信息。通常都是只记住其英文拼写,有时甚至是凭着语意拼读出来的,如显示窗口用ShowWindow,退出Windows操作系统用 ExitWindows等等,API函数的正确拼写格式及各参数的详尽信息都是在MSDN迅速检索到的,没必要刻意去死记这些信息,等用的次数多了,这些 信息也就在不知不觉中掌握了,但一定要具备在需要的时候能够从帮助系统中检索想要的信息的能力,这样就能做到事半功倍。学习VC++,一定要有一套真实的 练习环境,学会查阅帮助系统,决不能纸上谈兵,照着书本亦步亦趋,否则就真的是没有一两年的时间,