dll文件和exe文件看似只是后缀名不同,但其两者均遵循微软的可执行文件格式——PE结构(Portable Executable)。
Windows的PE装载器在识别所打开的一个可执行文件的时候,就是按照PE结构去解析相关的代码和数据信息。
为什么系统要提出dll文件这种概念呢?如果你作为程序员打算要编写一款小型程序,因为该程序的功能并不复杂,所以不需要编写过多复杂的代码。正因此,你只需要编译出一个体积差不多小的exe文件就能宣布项目开发完成了。
但如果是中大型项目呢?一个大小型项目往往能牵扯到许多的业务功能实现,将所有的业务功能实现的代码都全部写进同一个exe来的话,exe的体积将会空前巨大,而且要是该项目在某一些业务功能上有了更新,要让用户用上新发布的版本就只能让用户重新下载exe,影响极其不便。
而有了dll之后,事情就好办多了。把负责用户注册登录的代码写进一个dll里,把负责播放音乐、播放视频的代码写进另一个dll里,最后再让exe自己链接到相应的dll,就不仅避免单个文件膨大的问题,还能使更新更加地方便。
[呵呵][呵呵][呵呵]
咳咳,现在我们来说说根据pe结构的原理怎么实现把dll转成exe来,步骤超级超级简单。
首先我们随便写个代码来,静态编译出一个dll
#include
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
MessageBoxW(NULL, L"阿姨你好", L"(-.-)", MB_OK);
return TRUE;
}
接着我们随便使用一个PE编辑器来,用StudyPE+、CFF Explorer或LordPE等等都可以,这里我使用CFF Explorer。
一句话总结:dll本身就是为了模块化应用程序而诞生的,dll跟exe的区别就是dll不能直接执行main入口,只能让其他exe或dll模块在加载和卸载的时候自动调用dllmain,其他的编译方式跟exe并没有区别。
教程评论区更新!!!!

1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
暂无评论内容