zoukankan      html  css  js  c++  java
  • (转)库函数之 API

    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之下。
    7.网络服务(Network Services),为访问操作系统提供的多种网络 功能提供接口。它包括NetBIOSWinsock、NetDDE及RPC等。
    ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
    微软公司在一个名叫MFC的框架库里面使用C++语言封装了 API函数。
    ×××××××××××××××××××××××××××××××××××
    C C++ 可以微软的操作系统没有什么关系, 可以这么说操作系统是C 和C++  还有一点汇编语言的儿子。
    ×××××××××××××××××××××××××××××××××××××××××××××××××
  • 相关阅读:
    java的各种日志框架
    (4)一起来看下mybatis框架的缓存原理吧
    (3)一起来看下使用mybatis框架的select语句的源码执行流程吧
    Markdown基本语法
    openstack中使用linux_bridge实现vxlan网络
    python基础—第一句Python语句以及条件语句
    Java内存详解
    Java工具类练习题和答案
    面向过程和面向对象
    网页设计案例
  • 原文地址:https://www.cnblogs.com/wenluderen/p/4250372.html
Copyright © 2011-2022 走看看