什么是Windows API

Windows 工作原理的中心思想就是“动态链接”概念。Windows 自身带有一大套函数,应用程序就是通过调用这些函数来实现它的用户界面在屏幕上显示文本和图形的。这些函数都是在动态链接库里实现的。这些文件的名称都带有后缀 .dll,或有时带有 .exe。

Windows 的 3 个主要子系统:内核(kernel),用户(user),GDI。

内核 负责操作系统的传统工作:如 内存管理,文件输入/输出 以及任务管理等。

用户 指的是用户界面,负责所有的窗口管理

GDI 就是图形设备接口,负责在屏幕或打印机上显示文本与图形

在 Windows 程序中,调用 Windows 函数与调用 C 语言的库函数没有什么两样。

最主要的区别就是 C 语言库函数的机器代码会直接链接到你的程序代码中去,而 Windows 函数则是放到你的程序之外的 DLL 里

Windows 程序运行时,它通过一个叫“动态链接”的进程与 Windows 接口。

每个 Windows 的 EXE 文件包含它所要用到的各个动态链接库以及库中的函数的引用地址

当一个 Windows 程序被装入内存后,程序中的函数调用都被解析 DLL 函数入口的指针,同时这些被调用的函数也被装入内存。

当链接 Windows 程序以生存可执行文件时,一定得链接你的编程环境所提供的特殊的“导入库”。

这些导入库包含所有 Windows 函数调用要碰到的动态链接库的名字及引用信息。链接程序利用这些信息构建 EXE 文件中的表格,当装入程序的时候,Windows 要靠这些表格来解析 Windows 函数调用。

另外值得提醒的一点是,MFC 是对 API 的封装,隐藏了许多复杂的情节。

API(应用编程接口)是程序与处理器接口的命令集。最常用的就是在外部调用微软WINDOWS内部的进程。WINDOWS API包括成千的你可以使用的函数、结构、常量。这些函数是用C语言写的,在使用他们之前,你必须声明。定义Dll的进程将相当的复杂,甚至比VB还复杂。你可以使用API Viewer工具得到API函数的声明

大部分的高级语言都支持API,微软函数类库(MFC)封装了大部分的Win32 API。ODBC API对提高数据库的操作速度大有好处。使用API,可以请求更底层的系统服务。API从简单的对话框到复杂的加密运算都提供支持。开发者应该知道如何在他们程序中使用API

每种操作系统都有一套公用API和专有API。比如:Windows NT 支持MS-DOS, Win16, Win32, POSIX (便携式操作系统接口),OS/2 console API ;同时Windows 95 supports MS-DOS, Win16 和Win32 API。

Win16 和 Win32 API:

WIN16 是基于16位的处理器,并使用16位的值,它是一个独立的平台。比如:你可以运行TSR 程序在MS-DOS环境下。

WIN32 是基于32位的处理器,并使用32位的值。他可用于任何操作系统,它的使用范围更广。

Win32 API的DLL一般都具有32的后缀,比如:KERNEL32, USER32等。

所有的API都在下面3个DLL中实现的。

Kernel

User

GDI

1. KERNEL

它的库名是:KERNEL32.DLL,它是操作系统管理的API集

Process loading. 加载进程

Context switching.

File I/O. 文件操作

Memory management. 内存管理

比如:GlobalMemoryStatus 函数获得目前系统物理虚拟内存的使用信息。

2. USER

在WIN32下,它的库名是 USER32.DLL

它管理全部的用户界面,比如:

Windows 窗口

Menus 菜单

Dialog Boxes 对话框

Icons etc., 图标等

比如:DrawIcon 画一个图标在指定的设备上。

3. GDI (Graphical Device Interface)

这个DLL是GDI32.dll,它负责图像的输出,使用GDI绘出窗口,菜单,对话框

It can create Graphical Output. 输出图像

比如:CreateBitmap 函数创建一个指定宽度、高度和颜色格式的位图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值