多年来,我的应用程序已经从1MB增长到25MB,我预计它将进一步增长到40,50 MB。我不使用DLL,但把所有东西放在这个大的可执行文件中。
拥有一个大的可执行文件有一定的优势:
>在客户端安装我的应用程序真的是:复制并运行。
>升级可以轻松地压缩并发送给客户
>没有冲突的DLL的风险(客户具有EXE的版本X,但DLL的版本Y)
大EXE的最大缺点是连接时间似乎呈指数增长。
另外一个问题是代码的一部分(我们说约40%)与其他应用程序共享。再次,优点是:
>混合不正确的DLL版本没有风险
>每个开发人员都可以对通用代码进行更改,从而加快开发速度。
但是再次,这对编译时间(每个人都在PC上重新编写通用代码)和链接时间都有重大的影响。
问题Grouping DLL’s for use in Executable提到将DLL混合在一个可执行文件中的可能性,但是它似乎仍然需要您在应用程序中手动链接所有功能(使用LoadLibrary,GetProcAddress,…)。