exe只是一个入口文件,当然,其他的dll文件或者一些你不知道的格式文件,他们包含的东西很多,比如大部分的dll文件,他和exe文件的区别在于,dll文件只提供处理的方法,exe是去执行这些dll的。
打个比方,你要执行一个数据加密,但你不会写加密算法,恰好你在网上找到一个提供加密算法的dll,你就写一个exe,然后来调用那个dll,执行你的加密过程,你完全可以不需要了解加密是如何执行的,你只需要调用别人提供的dll就可以实现了。
你说的exe 其实和dll没什么区别,只是,普通人认为exe可以执行,而dll文件和其他文件不能执行而已。其实exe和dll 都是可执行文件,只是exe是提供给用户执行的,dll文件是给程序执行的。
还有一些你看到的什么dat,ini,xml等文件,这些就属于数据文件,文件的后缀并不代表文件的类型,我程序调用一张图片,我可以取名叫“picture.dll” 但它也能被当作图片处理,文件的后缀,只是方便操作系统去识别的,但在程序里,软件只会识别文件的流是不是能被转化成图片或者其他文件类型,不同程序,或者说不同游戏下,dat文件不代表就是同一种文件,只是看你程序如何处理而已,格式都是程序员自己定的。
总结来说,exe是给用户一个入口文件,exe可以是有窗体的,也可以是没有窗体的程序,exe负责去调用各种不同的dll和资源文件,dll也可以去调用其它不同的dll和资源文件,然后exe或者dll去处理数据,呈现给用户一个GUI界面去操作。
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
用比喻来说
比如你是去看陈奕迅演唱会,陈奕迅好比是exe可执行文件。
你们关注的是陈奕迅,也就是普通人要执行软件,首先去找exe后缀的文件。
但演唱会有很多元素,配乐,音响:可以理解为dll文件,
灯光,舞台等等理解为资源文件。
配乐,音响,灯光,舞台等等,这些不是你们主要关注的对象,他们只是辅助陈奕迅演唱会顺利进行的配角,他们就理解为各种资源和各种库。
执行exe文件,就代表演唱会开始,然后需要用到各种各样的配角去配合完成演唱会,exe文件就去调用需要的dll,比如,(
配乐.dll
),执行"配乐.dll
",可以开始播放背景音乐,调用灯光.gif,
就可以呈现出各种各样的光效,但灯光.gif
由谁来调用呢?陈奕迅不会去操控灯光(但程序里可以exe去调用,也可以交给外部dll去调用,但与其让陈奕迅去学会操控灯效,不如请个灯效师,也就是灯光开始.dll
这个灯效师),所以这时候有个灯光开始.dll
就可以去控制灯光.....(省略500字)所以打包下来,就是以下几个东西:
陈奕迅.exe
电源.dll
配乐.dll
灯光.gif
灯光开始.dll
安保.dll
演出服装.png
...............................
但有些时候,我们觉得,dll文件这么多,会不会很冗余,所以我们辞掉了灯效师和控制电源的两个人,然后请了一个既会控制电源,又会操控灯效的人。(把两个dll合并成一个,就有一个power.dll,演唱会开始了后,我发出命令,power.dll,帮我打开舞台的电源,然后power就会打开舞台电源,然后你再叫他给我配合一下灯效,他就会帮你打灯效)一场演出下来,我们只会去关注陈奕迅他怎么表演,但其他的舞台效果,各种后台工作人员,就是各种dll和资源文件。这下比喻清楚了吧,还不清楚我就没办法了,书读的少,不怎么会表达。。。