UPX比Aspack的压缩比高(压缩速度似乎也更快)。我做了试验,分别压缩了一个1.4M和2.2M
的exe文件,Aspack的压缩率均为38%,UPX为34.6%和35.2%,用UPX压缩出的文件均比用AsPack
压缩的小数十K,如果exe文件更大,差距可以达到百多K。
实际上,你可以把一整个程序包在DLL里(不光是Form),作法很简单,把项目文件的program
关键字改为library,再把项目文件中从begin
到end.
之间的代码写在一个函数中,导出这个函
数就可以了。
library Project1;
//改program关键字为library
uses
Windows,
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
procedure RunApp;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
exports
RunApp;
end.
调用DLL时,只要调用RunApp函数就可以打开整个程序了。