API是库函数,这些库函数操作系统提供开发人员开发应用程序使用的。
API函数内部应该是C C++ 或者汇编语言实现的。
如果想在程序里面使用API函数 需要包含头文件 Windows.h。
××××××××××××××××××××××××××××××××××××××××××××××××
Windows操作系统通过两种接口对外提供服务:普通用户操作接口服务和程序员接口服务。其中用户操作接口服务是通过最终用户的操作来完成的,而程序员接口服务是提供一系列底层的实现操作系统最基本的函数(接口)供程序员调用来完成相关功能的。
比如一个文件的拷贝,普通用户可以通过鼠标菜单选择操作或者命令来完成,程序员可以通过程序代码调用文件操作的相关函数(API)来完成相同的功能。
所有这些系统底层、实现最基本功能、供程序员调用的函数集中起来形成一个集合,这就是API(Application
Programming Interface)。
Windows API编程是开发Windows应用程序最古老、最原始、同时又是检验一个程序员对windows操作系统及相关数据结构掌握程度的最好方法。
应该知道:所有其它类库以及后面要讲到的MFC,都是对这些最基本功能的函数进行封装来实现的。
任何使用MFC能实现的功能,使用API同样能够实现,而且能够更加灵活。了解并学习API编程,可以看到使用MFC编程所看不到的东西,更深入了解Windows系统运行机制,同时帮助我们学习MFC编程。
API函数集是由操作系统或开发环境提供的,以DLL的形式出现。
其中有三个最主要的动态连接库:Windows内核库(Kernel32.dll)、Windows用户界面管理库(User32.dll)、Windows图形设备界面库(Gdi32.dll),
这些动态连接库共同构成了Win32 API函数。
Windows内核库(Kernel32.dll):所有底层的核心功能如任务管理、内存管理,进程线程文件管理等的函数都在这个动态连接库中;
Windows用户界面管理库(User32.dll):窗口管理,菜单管理以及通信等相关函数都在该动态连接库中;
Windows图形设备界面库(Gdi32.dll):集合了关于图形设备的所有函数。
所有这三个动态连接库中的函数原型说明都在头文件windows.h中声明,所以在使用API进行编程序的时候别忘了包括该头文件。
当然了,这只是主要的三个动态连接库,其他比较常用的还有网络服务(Winsock32.dll)、多媒体服务(Winmm.dll)等等。
××××××××××××××××××××××××××××××××××××××××××××××××
API函数的分类。
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
1.基础服务(Base Services),提供对Windows系统可用的基础资源的访问接口。比如象:
文件系统(file system)、
外部设备(device)、,
进程(process)、
线程(thread)以及访问
注册表(Windows registry)和错误处理机制(error handling)。这些功能接口位于,16位Windows下的kernel.exe、krnl286.exe或krnl386.exe系统文档中;以及32位Windows下的 kernel32.dll和advapi32.dll中。
2.
图形设备接口(GDI),提供功能为:输出图形内容到
显示器、
打印机以及其他外部输出设备。它位于16位Windows下的gdi.exe;以及32位Windows下的gdi32.dll。
3.图形化用户界面(
GUI),提供的功能有创建和管理屏幕和大多数基本控件(control),比如
按钮和
滚动条。接收
鼠标和
键盘输入,以及其他与GUI有关的功能。这些调用接口位于:16位Windows下的user.exe,以及32位Windows下的user32.dll。从
Windows XP版本之后,基本控件和通用对话框控件(Common Control Library)的调用接口放在comctl32.dll中。
4.通用对话框链接库(Common Dialog Box Library),为应用程序提供标准对话框,比如打开/保存文档对话框、颜色对话框和字体对话框等等。这个链接库位于:16位Windows下的commdlg.dll中,以及32位Windows下comdlg32.dll中。它被归类为User Interface API之下。
5.通用控件链接库(Common Control Library),为应用程序提供接口来访问操作系统提供的一些高级控件。比如像:
状态栏(status bar)、进度条(progress bars)、
工具栏(toolbar)和
标签(tab)。这个链接库位于:16位Windows下的commctrl.dll中,以及32位Windows下comctl32.dll中。。它被归类为User Interface API之下。
6.Windows外壳(Windows Shell),作为Windows API的组成部分,不仅允许应用程序访问Windows外壳提供的功能,还对之有所改进和增强。它位于16位Windows下的shell.dll中,以及32位Windows下的shell32.dll中(
Windows 95则在 shlwapi.dll中)。 它被归类为User Interface API之下。
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
微软公司在一个名叫MFC的框架库里面使用C++语言封装了 API函数。
×××××××××××××××××××××××××××××××××××
C C++ 可以微软的操作系统没有什么关系, 可以这么说操作系统是C 和C++ 还有一点汇编语言的儿子。
×××××××××××××××××××××××××××××××××××××××××××××××××
(转)库函数之 API