如何使DELPHI编译出来的EXE文件最小
来源:互联网 发布:java反编译工具jd gui 编辑:程序博客网 时间:2024/04/29 15:47
发信人: Stony (My Digital Stony·喜欢上海的理由), 信区: Borland
标 题: 如何使DELPHI编译出来的EXE文件最小[zz]
发信站: 饮水思源 (2004年08月11日11:49:38 星期三), 站内信件
如何使DELPHI编译出来的EXE文件最小
作者: 出处: 更新时间: 2004年08月04日
1、尽量用API函数来写程序。一个完全用API写的窗口编译后只有8KB。具体可以购买一本《Windows程序设计》来看看,¥160。我也有CHM格式的,但足足有4M多,所以无法提供,见谅!
例子下载:一个包含一个按钮、一个EDIT的窗口程序。
2、尽量把某些函数和过程直接用到程序中,而不是在Uses中引用某个单元。现在的面向对象语言编译器都有个缺点,就是即使你只用到某个单元的一个函数或者一个结构,编译器也会把这个单元整个打包编译。
3、调试完毕后把调试信息编译选项去掉再编译一次。这样做也可以减少一定的大小。
4、一些小程序可以采用控制台程序的方法编写。
注意事项:
1、程序的扩展名不是PAS,而是DPR
2、要加入一句{$APPTYPE console} //设置程序为非图形界面
3、可以调用API函数。
如我以前写的一个破解星号密码的程序,如果用图形界面来写,放一个TIME控件也是可以的。但大小差很多。
//***********************************************************8
//password_dos.dpr,陈经韬作品
//http://lovejingtao.126.com
//lovejingtao@21cn.com
//***********************************************************8
program password_dos;
{$apptype console} //设置程序为非图形界面
uses
windows,
messages;
const s:boolean=true;//置循环标志
var
pass_edit_hwnd:hwnd;//密码窗口句柄
p:tpoint; //鼠标指针
begin
writeln;
writeln('**************************************************************************');
writeln;
writeln;
writeln(' 星号*密码破解器' );
writeln(' 使用方法:将鼠标移动到密码框,密码就会自动现形!' );
writeln(' 按 Ctrl+C 退出程序。 ' );
writeln(' ///|/// ' );
writeln(' // - - // ' );
writeln(' ( @ @ ) ' );
writeln(' +----------------------oOOo-(_)-oOOo---------------------+ ');
writeln(' | | ');
writeln(' | 若在使用过程中发现任何问题或有新的想法请及时与我联系: | ');
writeln(' | 主页:http://lovejingtao.126.com | ');
writeln(' | E-MAIL: lovejingtao@21cn.com | ');
writeln(' | | ');
writeln(' | Oooo 陈经韬 2000.07 | ');
writeln(' +---------------------- oooO---( )---------------------+ ');
writeln(' ( ) ) / ' );
writeln(' / ( (_/ ' );
writeln(' /_) ' );
writeln;
writeln('**************************************************************************');
writeln;
while s<>false do begin
getcursorpos(p); //查鼠标坐标
pass_edit_hwnd:= WindowFromPoint(p); //返回句柄
SendMessage(pass_edit_hwnd,EM_SETPASSWORDCHAR,0,0);//发送消息
SendMessage(pass_edit_hwnd,WM_PAINT,0,0); //
SendMessage(pass_edit_hwnd,WM_KILLFOCUS,0,0); // 刷新窗口
SendMessage(pass_edit_hwnd,WM_SETFOCUS,0,0); //
sleep(1000); //延时1000毫秒
end;
end.
5、用其它的控件来设计程序。
例子XForm下载:一组不使用 VCL 专门建立精简 .EXE 的类库,使用 XForm 替换 TForm, XControl 替换 TControl 可以大幅缩小 .EXE 文件的大小
6、用ASPACK等压缩软件来压一下。这个方法应该很多人知道了。UPX也不错,但我觉得ASPACK好一点,因为ASPACK压缩后的程序还有自我保护功能,当别人修改或者病毒感染了你的EXE文件后,运行时会报错并且无法继续运行。虽然UPX可以压得更小,但UPX本身的代码是公布了的,所以别
人很容易破解你的程序。
--
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.43.16]
- 如何使DELPHI编译出来的EXE文件最小
- 为什么delphi编译生成的exe文件这么大?
- vc编译出来的exe太大----解决办法
- DELPHI 如何执行一个更改了扩展名的EXE文件
- 如何看文件是否是交叉编译出来的
- 如何将 exe程序和vb编译的exe文件 封装为一个exe文件
- 减小Delphi 2010/delphi XE编译出来的文件大小
- 减小Delphi 2010/delphi XE编译出来的文件大小
- vc编译exe的体积最小优化
- vc编译exe的体积最小优化
- vc编译exe的体积最小优化
- 转载VS2008 编译出来的exe文件,运行遇到“应用程序配置不正确,程序无法启动”的问题
- 如何使gcc编译的程序最小
- 如何减小Delphi应用程序(EXE)的大小
- delphi 动态修改exe文件的图标
- 今天发现Delphi编译出来的程序报病毒了。
- 【转】减小Delphi XE5编译出来的程序体积
- 用VC生成最小的EXE文件
- 金庸的计划生育观念
- 男人心中理想女友的职业排行榜
- 可口可乐公司的招聘题目
- 招人厌的 10 种男人
- delphi编程环境技巧集锦
- 如何使DELPHI编译出来的EXE文件最小
- Delphi IDE使用的一些主要技巧
- Delphi数据压缩处理
- 热烈庆祝英语6级过了
- 昨天人生中第一张工资条
- 最后留言。
- 非常好的电子图书网站
- 0:8
- 几个常用开源项目的地址荟萃(转)