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

Windows编程基础一:Windows应用的基本概念

2015-05-18 21:15 281 查看
一、Windows应用程序的特点

1)具有图形窗口界面,一般可以与键盘和鼠标相配合

2)程序的进行是由程序用户和系统所发出的事件(键盘事件、鼠标事件、系统事件等)推动(驱动)的。

Windows应用程序的基本结构,一段叫做主函数、另一段叫做事件处理函数,这两个看起来并没有关联的函数均由操作系统来调用。如图1所示。



Windows 程序主函数的主要工作为两项,一创建程序图形窗口界面,二是进入一个叫做消息循环的循环中,并在这个循环中等待用户事件的产生。当在消息循环中接收到事件后,主函数将把事件信息传送给系统,而系统则调用Windows程序中的事件处理函数并对事件进行处理,直到一个事件处理程序结束后,事件处理函数返回到系统,再由系统返回到主函数的循环之中,接着等待下一个事件,程序再次循环。直至事件是一个终止程序运行的事件,Windows程序才结束运行并最后返回到系统。

从DOS的角度来年,当初的Windows是运行在DOS上以main()为起始函数的一个应用程序,只不过它是一个用来支持Windows应用程序的运行平台(操作系统)。由于main()已作了在DOS上运行的Windows操作系统的主函数名,所以为了防止命名上的冲突,微软把当初运行在Windows操作系统之上的Windows应用程序入口函数名就称为WinMain。即Windows应用程序的起始函数原型为:

<span style="font-family:Microsoft YaHei;font-size:14px;">int WINAPI WinMain(
HINSTANCE hInstance,	//当前应用程序实例的句柄
HINSTANCE hPrevInstance,	//系统中前一个应用程序实例的名柄
LPSTR lpCmdLine,	//指向本程序命令行的指针
int nCmdShow	//决定应用程序窗口显示方式的标志
);</span>

二、DOS与Windows操作系统的关系

现在Windows上仍保留着DOS,不过不是当初的“纯”DOS,而是一个工作于Win32平台之上,具有MSDOS上的程序称作控制台程序(Console Application),这种不公可以调用C编译器提供的库函数之外,还可以调用Windows所提供的API函数,尽管它们与传统的DOS程序一样,都以main()为主函数。下图可以很好的说明现在的DOS与Windows系统



三、Java、.NET与Windows之间的关系

在谈Windows的同时不得不不提一提Java,因为在微软基于DOS开发了Windows的许多年后,Sun公司了在Windows操作系统上构建新运行平台的思想,构建了Java虚拟机的运行平台并开发了配套的Java评语言,进而形成了可跨平台的Java技术并在风格应用市场的成功,后来微软想与Sun竞争网络应用,又推出了新的平台——可跨平台、跨语言的.NET。目前,这个.NET是否能成为微软的新型操作系统是一个可期待的事件。





四、API函数介绍

一般的计算机系统在硬件设计上采取了措施使软件可以工作在没的的保护等级上,如X86就把软件分成了4个“特权级”的保护级别,为了操作系统安全性,操作系统中的软件一般都运行在保护度最高的级别,而用户程序则工作在保护程序最低的级别。因此用户程序根本不可能按照普通的方法访问处于等级最高的内核,除非使用操作系特意为用户所提供的API函数。

API与其他函数的区别就是,它实质是一个软中断,因为在CPU硬件的设计上限定了用户程序只有通过软中断才能进入高保护级别代码。为了区别于普通函数,人们也常将API函数叫做系统调用,因为这种函数既不是编译器提供的库函数,而是由操作系统提供的函数。

Windows API函数大体可分为三种:

1、窗口管理函数:实现窗口的创建、移动和修改等功能

2、图形设备函数:实现图形的绘制用操作功能,这类函数的集合叫做图形设备接口(GDI)

3、系统服务函数:实现与操作系统有关的一些功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: