【发布时间】:2011-05-20 22:13:56
【问题描述】:
我想知道 API 和 DLL 之间的确切区别。 谢谢。
【问题讨论】:
-
是的,API 仅仅是函数吗?
-
嗨,Imahan,请查看我的更新答案。
我想知道 API 和 DLL 之间的确切区别。 谢谢。
【问题讨论】:
一个简化的答案。
API 始终(根据定义)是应用程序编程接口。它是一组方法,可用作应用程序、Web 服务等的接口。
DLL 是与可执行文件格式相同的共享库文件。它包含要在其他 EXE 之间共享的代码和数据,因此您不必在每次更新 DLL 时重新编译它们。例如,DLL 允许您升级 Windows 版本并使应用程序在最新版本上运行。它可能包含可由一个或多个可执行文件(如 API)重用的代码。另一方面,它可能只包含数据,例如图标 (.icl) 和字体 (.fon)。
【讨论】:
每个 DLL 都有一些(是一个?)接口 (API),否则它将无用,但并非每个 API 都是 DLL,如示例中您可以使用 Web Api,您使用远程端点使用示例 HTTP 协议 -甚至不是 DLL 中的文件
【讨论】:
API 是包含函数和类声明(输入和输出参数)的头文件 (.h),这些声明的实现,即类或函数的定义将特别是 dll。
但是要连接(动态链接)这些 .h 和 .dll 文件,您需要 .lib 文件,这些文件将在运行时解析函数定义的地址并加载特定的 dll 文件。因此,库包含(APIs(.h)、lib 和 dll 文件)。
API 使应用程序开发独立于底层库实现。
示例:
如果你用 C 语言编写程序来打印“Hello World”。如果你运行 Windows 和 Linux 中的相同程序。
这两个可执行文件都将使用不同的系统库将其显示在屏幕上,因为 C 语言提供了诸如“STDIO.h”、“STDLIB.h”之类的 API 集,您无需担心底层库的实现。
因此,您可以将 API 视为头文件,将函数/类声明与函数/类定义连接起来。因此,名称为“应用程序接口”。
【讨论】:
API 是应用程序不同组件之间通信的接口,其中 dll 是一个库文件,其中包含代码,以便您的程序可以使用您的 API 来使用
【讨论】:
这两个术语之间几乎唯一的联系是,如果您进行本地 Windows 编程,您使用或编写的 API 通常会显示为 DLL 文件。但这也不是 API 可以采用的唯一具体形式,也不是每个 DLL 都代表一个 API。
API 的意思是“应用程序编程接口” - 它是代码实体(函数、类等 - 取决于编程语言)集合的抽象术语,旨在供广大程序员用来访问应用程序的功能。应用程序或库。
DLL 是 Windows 上的一种文件格式,其中包含可执行代码作为模块化应用程序的一种方式。
【讨论】:
DLL 是代码库,API 是代码库的接口。
【讨论】:
更新: DLL(动态链接库)是一个代码组件(有些类似于 Java 中的 Bean)。 DLL 包含方法或函数或例程或任何您称之为代码片段的内容。 API 是应用程序和该 DLL 之间的接口。大多数情况下,DLL 用于为其他应用程序提供服务,这些 DLL 称为服务器 DLL,如果 DLL 通过使用 API 调用或其动态调用请求某些服务,则称为客户端 DLL。这么简单的想法,API 只不过是可以从该 DLL 外部访问的方法或函数。 希望你现在明白了。
【讨论】:
implemented API。请参阅我的更新答案。
应用程序编程接口 (API) 是由软件程序实现的接口,它可以与其他软件进行交互。它促进不同软件程序之间的交互,类似于用户界面促进人与计算机之间交互的方式。 - 维基百科
动态链接库 (DLL) 是提供 API 的一种方式。 (程序员的接口)您可能有各种其他方法,例如 Web 服务。
【讨论】:
您必须具体。 DLL 可以代表:
API(应用程序编程接口)是由软件程序实现以与其他软件交互的接口。例如。如果在java中需要数据库连接,则需要JDBC api。
来自维基百科:
API 由应用程序实现, 库和操作系统 确定他们的词汇和 调用约定,并用于 访问他们的服务。
DLL 的用途(动态库几乎总是提供某种形式的共享,允许多个程序同时使用同一个库)。
本质上,WINAPI (Windows API) 都是在 DLL 文件中实现的,例如 mmsystem.dll 用于 MMSYSTEM Sound API。
参考资料:
【讨论】:
MMYSTEM Sound API,则必须使用在 mmsystem.dll 库中找到的已实现 API,否则您将调用骨架方法。
DLL = 动态链接库
API = 应用程序编程接口
DLL 只是 Windows 系统上的一个文件,其中包含一些可供其他可执行文件使用的代码。 API 是一种使用一个软件或软件库与另一个软件一起使用的方式。例如,有一个 Windows Registry API 允许您使用注册表,但是当您使用该 API 时运行的代码存储在 DLL 中。
【讨论】: