API和DLL之间的差异

问题描述 投票:8回答:8

我想知道API和DLL之间的确切区别。谢谢。

winapi api dll
8个回答
17
投票

这两个术语之间的唯一联系几乎是,如果您执行本机Windows编程,则您使用或编写的API通常会表现为DLL文件。但这不是API可以采用的唯一具体形式,也不是每个DLL都代表API。

API的意思是“应用程序编程接口”,它是一组代码实体(函数,类等,取决于编程语言)的抽象术语,旨在供广大程序员用来访问应用程序的功能。或图书馆。

DLL是Windows上的一种文件格式,其中包含可执行代码,可以将应用程序模块化。


6
投票

DLL是代码库,API是代码库的接口。


5
投票

应用程序编程接口(API)是由软件程序实现的接口,使其可以与其他软件进行交互。它促进了不同软件程序之间的交互,类似于用户界面促进了人机之间交互的方式。 -维基百科

动态链接库(DLL)是提供API的一种方法。 (与程序员的接口)您可能有多种其他方法,例如Web服务。


2
投票

更新:DLL(动态链接库)是一个代码组件(有些类似于Java中的Bean)。 DLL包含方法或函数或例程,或您所说的那些代码片段。API是应用程序与该DLL之间的接口。在大多数情况下,DLL用于为其他应用程序提供服务,这些DLL称为服务器DLL,如果DLL通过使用API​​调用或其动态调用来请求某些服务,则称其为客户端DLL。这么简单地认为,API就是从DLL外部可以访问的方法或函数。希望你现在有了主意。


1
投票

DLL =动态链接库

API =应用程序编程接口

DLL只是Windows系统上的一个文件,其中包含一些可由其他可执行文件使用的代码。 API是一种将一种软件或软件库与另一种软件一起使用的方法。例如,有一个Windows注册表API,允许您使用注册表,但是使用该API时运行的代码存储在DLL中。


0
投票

您必须明确。 DLL可以代表:

  1. 数据链路层,
  2. 动态链接库(Windows平台上的共享库)。它也可以是资源库。

API(应用程序编程接口)是由软件程序实现以与其他软件交互的接口。例如。如果在Java中需要数据库连接,则需要JDBC API。

来自维基百科:

API由应用程序实现,库和操作系统确定他们的词汇量,调用约定,用于访问他们的服务。

DLL的目的(动态库几乎总是提供某种形式的共享,从而允许同一程序同时被多个程序使用)。本质上,WINAPI(Windows API)全部在DLL文件中实现,例如MMSYSTEM Sound API的mmsystem.dll

参考:


0
投票

API是用于通信应用程序不同组件的接口,其中dll是一个包含代码的库文件,以便您的程序可以使用您的API来使用


0
投票

API是头文件(.h),其中包含函数和类声明(输入和输出参数),这些声明的实现,即类或函数的定义将特别是dll。

但是要连接(动态链接)这两个.h和.dll文件,您需要.lib文件,这些文件将在运行时解析功能定义的地址,并且已加载特定的dll文件。因此,库包含(APIs(.h),lib和dll文件)。

API使应用程序开发独立于基础库实现。

示例:

如果您使用C编写程序以打印“ Hello World”。如果您运行Windows和Linux中使用相同的程序。

这两个可执行文件都将使用不同的系统库在屏幕上显示它,因为C语言提供了一组API,例如“ STDIO.h”,“ STDLIB.h”,因此您不必担心基础库的实现。

因此,您可以将API作为头文件,将函数/类声明与函数/类定义连接起来。因此,名称为“应用程序接口”。

© www.soinside.com 2019 - 2024. All rights reserved.