Windows是一个很全面的操作系统,除了协调应用程序的执行、分配内存、管理系统资源之外,它同时也是一个很大的服务中心。调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮助应用程序达到开启视窗,描绘图形,使用周边设备等目的。由于这些函数服务的对象是应用程序(Application),所以便称之为应用程序编程接口(Application Programming Interface,简称API)。Windows系统从Windows95以后就都是32位系统,Win32就是通指Windows的32位系统平台。
API函数是开发Windows应用程序最底层的东西,就连Windows本身的许多应用程序都是用API函数来实现的。随着Windows系统的不断升级,与系统相关的API函数也在不断的变化,最明显的变化是由原来的16位变成了32位。有的API函数可以在每个版本的Windows系统中运行,有的则不可以,如实现窗体半透明效果的SetLayeredWindowAttributes函数,它就只能在Windows2000及以后的系统下运行。
API函数都封装在动态链接库中,对API函数的调用都需要加载动态链接库,常用的API函数大多都封装在KERNEL.dll、GDI.dll、USER.dll等几个动态链接库中,但在Microsoft Visual C++中调用API函数并不需要额外加载动态连接库的代码,因为Visual C++会自动与常用动态链接库相连。
API函数是开发Win32应用程序的基础,即使使用MFC库来开发Win32应用程序,也要对API函数有一定的了解。因为虽然MFC对API函数进行了封装,但并没有封装所有的
API函数,比如发送消息函数SHBrowseForFolder,在开发MFC应用程序过程中经常调用到这个函数。在Microsoft Visual C++中直接使用API函数需要在函数前面加上“::”符
号,这个符号用来调用全局函数而不是对象函数。在MFC中有许多和API函数同名的函数,在使用API函数的过程中直接按API函数的参数去写,编译器能自动识别这个API函数。