您的位置:首页 > 其它

01 对windows程序设计的基础认识

2015-01-02 02:11 316 查看

1:【消息】是一个典型的面向对象的词汇,【给某个对象过程发送消息】与【调用某个对象的某个公有成员函数】,是等价的。说的直白一点,某个对象有一个叫fun的成员函数,调用fun(some paramemter)函数,这是面向过程的说法。在面向对象的说法里,叫做,给fun()函数发送了some parameter消息

2:在windows程序设计中,要始终明确,你所编写的代码,并不是一个独立的、可运行的程序,你的代码,加上windows本身,才是一个可运行的过程。你所编写的代码,描述的是【对为了完成某种任务而需要与操作系统交互的过程的描述】,你的代码其实描述的是一个过程,是一个与windows交互、有些包括与用户交互的过程,通过这个过程,你能实现某种功能

3:程序设计语言本身并不具有操纵硬件的能力,都要借助于操作系统,也就是说,我们用C语言写的Hello World控制台应用程序,也是借助了操作系统的。

操作系统管理计算机的所有资源,包括所有硬件,程序的计算、输出显示等功能,都要借助于操作系统来实现。那么程序设计语言与操作系统之间是怎么联系的呢?操作系统管理硬件,提供给你编程接口,其实就是程序设计语言中的函数,你通过调用基于操作系统的函数,或者叫做给这些函数发送消息,来指挥操作系统,让操作系统来完成你需要的功能与实现。这种基于操作系统的函数,叫做操作系统API。C语言的标准printf()函数,在所有操作系统与支持C的硬件上都能实现,并不是说这些printf()是一样的,不是这样的,不同的操作系统管理硬件的方式是不一样的,不同的显示器有不同的特性,只是在所有的C语言的编译环境与硬件环境下,所有的printf()运行的结果是一致的。无论使用windows
VC下的printf(),还是Linux gcc下的printf(),无论使用一台386黑白屏幕电脑,还是神舟笔记本,还是MAC,无论你的屏幕是17寸的,21寸的,还是27寸的,其执行结果是一致的,但是其执行过程,是不一样的。

基于windows下的vc编译器的printf()函数,与Linux或其他操作系统下基于gcc的printf()函数,细节上是不一样的。不同显示器的电脑,其printf()的运行过程也是不同的。其实再细分一点,显示器由显卡管理,显卡由不同操作系统下的驱动程序管理,操作系统将显卡驱动程序所提供的API封装成操作系统自己的API,程序设计语言与其编译器再将操作系统的API再进行一次封装,这样,呈现在程序员面前的就是C语言的printf(),而至于printf()函数通过什么样的过程最终驱动显示器显示内容,这其中的过程对程序员是透明的。

而我们学习windows程序设计,不能只局限于程序设计语言层面,因为在这个层面没有一个程序设计语言将windows窗口应用程序的API封装到语言本身的特性中去,所以我们要再深入一层,了解到windows API层面上,你需要了解如何通过C语言给windows API发送消息,来驱动硬件运动,程序运行。这才能算是学习windows程序设计。

所以说,学习windows程序设计,学习的并不光是程序设计,更重要的是,学习windows操作系统公开给我们的API,以及了解理解消息与这些API函数如何互动,这才是学习windows程序设计的关键。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows