首页 > 8 其它知识 > EXE、DLL、API三者的关系

EXE、DLL、API三者的关系

2011年2月26日 AEROFISH 1,846 views 发表评论 阅读评论

EXE、DLL、API是程序编程中的三个重要概念。

EXE比较简单,即可执行程序,只要双击鼠标就能立即运行。

DLL,为动态链接库,英文Dynamic Link Library。

DLL的历史。在DOS大行其道的时代,写程式是一件繁琐的事情,因为每个程式的代码都是需要独立的,这时为了实现一个普通的功能,都要为此编写非常多代码。后来随着编程技术发展和进步,程式员们开始把一些常用的代码集合(也就是通用代码)放进一个独立的文件里,并把这个文件称为“库”(Library)。在写程式的时候,把这个库文件加入编译器,就能使用这个库包含的所有功能而不必自己再去写一大堆代码,这个技术被称为“静态链接”(Static Link)。静态链接技术让劳累的程式员松了口气,一切似乎都非常美好。然而静态链接技术的最大缺陷就是极度消耗和浪费资源,当一个程式只想用到一个库文件包含的某个图像效果时,系统将把这个库文件携带的所有的图像效果都加入程式,这样就使得程式非常臃肿。虽然这并不重要,可是这些臃肿的程式却把道路都阻塞了——静态链接技术让最终的程式成了大块头,因为编译器把整个库文件都加载进去了。静态链接技术由于无法避免的弊端,不能满足程式员和编程的需要,人们开始寻找一种更好的方法来解决代码重复的难题。随着视窗系统系统的出现,即Windows的出现,微软使用一种被称为“动态链接库”的新技术,他同样也是使用库文件。动态链接本身和静态链接没什么差别,也是把通用代码写进一些独立文件里,不过在编译方面,微软把库文件做成已编译好的程式文件,给他们研发一个交换数据的接口。程式员编写程式的时候,一旦要使用某个库文件的一个功能函数,系统就把这个库文件调入内存,连接上这个程式占有的任务进程,然后执行程式要用的功能函数,并把结果返回给程式显示出来。完成需要的功能后,这个DLL停止运行,整个调用过程结束。微软让这些库文件能被多个程式调用,实现了比较完美的共享,程式员无论要写什么程式,只要在代码里加入对相关DLL的调用声明就能使用他的全部功能。这样,写出来的程式就不能再臃肿了。

API,称为应用程式接口,英文Application Programming Interface。前面提到的在DLL中用于交换数据的接口,即指的是API 。微软为DLL技术做了标准规范,为每个DLL文件都明确地标注好其中的功能名称,程式只要根据标准规范找到相关的名称进行调用就行了,这就是API。

EXE、DLL、API三者的关系:

EXE与DLL在机构上其实差不多,只是EXE为可执行文件,DLL为不可执行文件。DLL运行必须挂在相应的EXE文件上,一起运行。而EXE与DLL连接方法就是通过API接口。这个API接口其实就是包含在DLL文件中的一小段函数,称为API接口函数。


本文对我无帮助,减1分本文对我有帮助,加1分 (本文对您有帮助吗?)
Loading ... Loading ...

分类: 8 其它知识 标签: , , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.