如何使DELPHI编译出来的EXE文件最小

news/2024/7/8 5:56:43 标签: delphi, exe, borland, 编译器, 破解, 图形

发信人: 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]


http://www.niftyadmin.cn/n/1372961.html

相关文章

06.网页布局

布局方式 1、固定宽度布局&#xff1a;为网页设置一个固定的宽度&#xff0c;通常以px做为长度单位&#xff0c;常见于PC端网页。 2、流式布局&#xff1a;为网页设置一个相对的宽度&#xff0c;通常以百分比做为长度单位。 3、栅格化布局&#xff1a;将网页宽度人为的划分成均…

delphi编程环境技巧集锦

[本篇全文] [回复本文] [本篇作者: Rainie] [本篇人气: 1]发信人: Rainie (Nothing Serious), 信区: Borland标 题: delphi编程环境技巧集锦发信站: 饮水思源 (2004年08月11日23:09:05 星期三), 站内信件 全文较长&#xff0c;请耐心观看。原文URLhttp://members.lycos.co.uk…

TCP 长连接和短连接

一、长连接与短连接&#xff1a; 长连接&#xff1a;client方与server方先建立连接&#xff0c;连接建立后不断开&#xff0c;然后再进行报文发送和接收。这种方式下由于通讯连接一直存在。此种方式常用于P2P通信。短连接&#xff1a;Client方与server每进行一次报文收发交易时…

WebSocket简介与最佳实践

一、背景&#xff1a;源于一个需求需求&#xff1a;“客户端扫二维码&#xff0c;将客户端参数信息展示在web端”问题焦点&#xff1a;实时的web应用&#xff0c;Client 跟 Server 之间&#xff0c;实时的双向通信。二、传统解决方案&#xff1f;轮询&#xff08;Polling&#…

Delphi数据压缩处理

发信人: Stony (My Digital Stony喜欢上海的理由), 信区: Borland标 题: Delphi数据压缩处理[zz]发信站: 饮水思源 (2004年08月11日11:43:05 星期三), 站内信件 Borland公司推出的 RAD开发工具 Delphi 5.0作为 Windows平台上的主流开发工具&#xff0c;其可视化的开发环境和面…

文件包含 与 头文件的写法

很多人对C语言中的 “文件包含”都不陌生了&#xff0c;文件包含处理在程序开发中会给我们的模块化程序设计带来很大的好处&#xff0c;通过文件包含的方法把程序中的各个功能模块联系起来是模块化程序设计中的一种非常有利的手段。 文件包含处理是指在一个源文件中&#xff0c…

Kernel常见锁的原理和实现

2019独角兽企业重金招聘Python工程师标准>>> 锁是内核中使用最频繁&#xff0c;最基础的设施之一&#xff0c;在内核的各个模块中被大量使用。锁的本质是在并发过程中保证资源的互斥使用。Linux内核提供了多种锁&#xff0c;应用的场合也各不相同&#xff0c;主要包…

头文件与同名源文件的关系

一、头文件寻找路径 1&#xff0c;系统自带的头文件用尖括号括起来&#xff0c;这样编译器会在系统文件目录下查找。 #include <xxx.h> 2&#xff0c;用户自定义的文件用双引号括起来&#xff0c;编译器首先会在用户目录下查找&#xff0c;然后在到C安装目录&#xf…