养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

如何合并DLL到你的EXE程序中

时间:2024-11-10 17:02:49

如何合并DLL到你的EXE程序中

方法/步骤

1、用VC++生成一个最简单的Win32ConsoleApplication,调用少量简单的CRT函数,因为要独立EXE,所以使用/MT,示例代码部分如下,然后Release编译看看体积。

如何合并DLL到你的EXE程序中

2、打开最小体积优化开关Project-Property-C/C++-Optimization将Optimization改为MinimizeSize(/O1),重新编译。现在大小是40960字节。可能是示例程序过于简单,所以此开关并没有产生实际的影响,但是在其它有需求的情况下是可以考虑使用它的,在复杂程序中开优化减小体积还是比较明显的,当然也要提防优化带来的问题。

如何合并DLL到你的EXE程序中

3、去掉CRT依赖这至少需要处理如下几点:自己指定程序入署孢颜匈口点Project-Property-Linker-Anvance颊俄岿髭d在EntryPoint那里填写你的新入口点函数,比如我写的是NewEntry,然后将main函数改成这个名字,比如voidNewEntry()。自己实现用到的CRT函数上面的程序里用到了strcpy,那么我们就自己来实现它,当然你用跟它相同的名字和声明实现一个函数是通不过编译的,VC会报错errorC2169:'strcpy':intrinsicfunction,cannotbedefined,要解决这个问题需要关掉一个开关:Project-Property-C/C++-Optimization将EnableIntrinsicFunctions设为No。

如何合并DLL到你的EXE程序中

4、加壳压缩使用比如UPX,ASPack等加壳工具对可执行程序进行压缩。但是实际发现,在EXE文件特别小时,比如像上面已经精简到3584字节后,再使用ASPack工具压缩会反而令EXE文件更大。

如何合并DLL到你的EXE程序中

© 一点知识