Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Smanjenje velicine executable fajla ?

[es] :: Pascal / Delphi / Kylix :: Smanjenje velicine executable fajla ?

[ Pregleda: 1832 | Odgovora: 12 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reiser
Beograd

Član broj: 7895
Poruke: 1903
62.108.97.*



Profil

icon Smanjenje velicine executable fajla ?29.11.2003. u 20:12

Mozda je pitanje malo dumb :
Kako moze da se smanji velicina kompajliranog source koda u delphi-ju ? Primetio sam da ako ne koristim uses, velicina cistog fajla je svega 9.0 Kb, ali ako koristim uses, onda je velicina cistog fajla oko 350 Kb. Moze li nekako da se iz tih unita (Messages, Dialogs, ShellApi, itd...) 'izvuce' samo ta funkcija/procedura koja mi treba i da je ubacim u moj source code ?
29.11.2003. u 20:12 

broker

Član broj: 2415
Poruke: 8521
*.vdial.verat.net



Profil

icon Re: Smanjenje velicine executable fajla ?29.11.2003. u 21:39
U principu moze ali je komplikovano. Postoje neke gotove biblioteke koje sadrze zamene za VCL tako da se zaista mogu praviti aplikacije koje imaju vrlo malu izvrsnu datoteku. Nazalsot, ja sam se time bavio davno i ne secam se imena biblioteka ali znaj da ima dosta dobrih resenja.
29.11.2003. u 21:39 

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.verat.net

Sajt: localhost


Profil

icon Re: Smanjenje velicine executable fajla ?29.11.2003. u 21:48
teoretski može, ali je praktično malo teže. recimo, te funkcije koje ti koristiš koriste druge funkcije/tipove/klase/konstante/promenjive iz tih unita, pa zato to nije tako lako ostvarivo.

znači, teoretski, mogao bi da napraviš "light native units" (valjda bi mogao da zameniš sve osim system.pas i možda još neke), ali vrlo retko se to radi.

i ne razumem koji je problem u par stotina kb. ako baš insistiraš, možeš posle na iskompajliranom izvšrnom fajlu da iskoristiš neki exe packer.

a možeš da koristiš i deljene biblioteke. znači, ubaciš .bpl fajlove u windows direktorijum, a tvoji iskompajlirani fajlovi svi budu ispod 100k. dobro, ovo nije neko poboljšanje ako imaš jedan program, ali ako imaš 3-4, već ima razlike...
29.11.2003. u 21:48 

reiser
Beograd

Član broj: 7895
Poruke: 1903
62.108.97.*



Profil

icon Re: Smanjenje velicine executable fajla ?29.11.2003. u 22:30
Nikako mi ne odgovara da je velicina fajla iznad 100kb. Uocio sam da mi Forms, Dialogs i Registry odnose oko 380 Kb ! (a ceo executable fajl je 420 Kb), tako da sam izbacio Forms, Dialogs i Registry, i sve naredbe od strane ovih unita sam zamenio drugim procedurama/funkcijama koje rade istu stvar (thx god that there is MSDN :)). Takodje cu ga packovati i sa UPX.
Hvala.
29.11.2003. u 22:30 

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Smanjenje velicine executable fajla ?29.11.2003. u 22:31
Moze. Kompajliraj fajl bez Uses (odnosno onamo u project properties podesi iskljuci compile using real time... sta vec bese. E onda startuj dependancy viewer ili neki slicni program i onda pokupi sve biblioteke koje ce ti trebati (u oba slucaja) da bi program mogao da radi.
29.11.2003. u 22:31 

reiser
Beograd

Član broj: 7895
Poruke: 1903
62.108.97.*



Profil

icon Re: Smanjenje velicine executable fajla ?30.11.2003. u 12:57
Moze li neko da mi objasni kako da zapisem podatak u registry i da ga izbrisem, bez Registry unita ? (RegCreateKey(ex), RegDeleteKey...)

Da li je dobro da izvrsavam neki program sa ShellExecute(HWND_BROADCAST,...) handlerom ?
30.11.2003. u 12:57 

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Smanjenje velicine executable fajla ?30.11.2003. u 18:13
Citat:
Marko Paunovic:
Moze li neko da mi objasni kako da zapisem podatak u registry i da ga izbrisem, bez Registry unita ? (RegCreateKey(ex), RegDeleteKey...)


A sto da komplikujes. Mislim da moze da se uradi uz pomoc APIja ali ne moze...

Citat:
Marko Paunovic:
Da li je dobro da izvrsavam neki program sa ShellExecute(HWND_BROADCAST,...) handlerom ?


Ovaj metod je dobar ukoliko ne moras mnogo da baratas sa otvorenim programom. Zato samo -->
30.11.2003. u 18:13 

reiser
Beograd

Član broj: 7895
Poruke: 1903
194.106.186.*



Profil

icon Re: Smanjenje velicine executable fajla ?01.12.2003. u 17:44
Citat:
A sto da komplikujes. Mislim da moze da se uradi uz pomoc APIja ali ne moze...

Protumaci mi ovo plz :)

Ma moze sigurno da se zapise, video sam da RegOpenKey radi, i da pomocu njega moze da se cita registry. Sta onda treba da rade RegCreateKey i RegDeleteKey ???
01.12.2003. u 17:44 

Miloš Vukotić
Podgorica

Član broj: 7996
Poruke: 485
195.66.163.*



Profil

icon Re: Smanjenje velicine executable fajla ?02.12.2003. u 07:16
Dobar dan :)

Sto ne probas sa nekim .exe kompresorom?
Npr. UPX, evo sad sam bas probao da bih imao tacne podatke kojim cu ga pohvaliti :) : *.exe fajl velicine 828KB (dobijen iz C++ Builder-a) smanjio je na 313KB sa default vrijednoscu kompresije tj. kompresija moze biti i veca...
Evo ga i link:
http://upx.sourceforge.net/
02.12.2003. u 07:16 

reiser
Beograd

Član broj: 7895
Poruke: 1903
62.108.97.*



Profil

icon Re: Smanjenje velicine executable fajla ?02.12.2003. u 13:40
Citat:
tizza:
Dobar dan :)

Sto ne probas sa nekim .exe kompresorom?
Npr. UPX, evo sad sam bas probao da bih imao tacne podatke kojim cu ga pohvaliti :) : *.exe fajl velicine 828KB (dobijen iz C++ Builder-a) smanjio je na 313KB sa default vrijednoscu kompresije tj. kompresija moze biti i veca...
Evo ga i link:
http://upx.sourceforge.net/


http://www.elitesecurity.org/tema/35768/0#242368
(vidi zadnju recenicu)
02.12.2003. u 13:40 

Miloš Vukotić
Podgorica

Član broj: 7996
Poruke: 485
195.66.163.*



Profil

icon Re: Smanjenje velicine executable fajla ?03.12.2003. u 06:23
Citat:
Marko Paunovic:
Takodje cu ga packovati i sa UPX.
Hvala.

Sorry
03.12.2003. u 06:23 

goblin
Milan Aleksic
Finsoft, Analyst Programmer
Beograd

Član broj: 4055
Poruke: 74
*.rcub.bg.ac.yu

Jabber: milanaleksic@gmail.com
ICQ: 53177884


Profil

icon Re: Smanjenje velicine executable fajla ?03.12.2003. u 09:50
Citat:
Marko Paunovic:
Citat:
A sto da komplikujes. Mislim da moze da se uradi uz pomoc APIja ali ne moze...

Protumaci mi ovo plz :)

Ma moze sigurno da se zapise, video sam da RegOpenKey radi, i da pomocu njega moze da se cita registry. Sta onda treba da rade RegCreateKey i RegDeleteKey ???


ema mnogo cimanja oko ovoga. Sve sto treba da uradis to je da otvoris Registry.pas i da pogledas koju su oni filozofiju iskoristili u implementiranju TRegistry klase (ona je bazirana na ovim WinAPI funkcijama). Ja sam ovo odradio pre neki dan (nemam kod na ovom racunaru posto pisem sa fakultetskog) i sve sto treba da znas jeste da prvo otvoris KLJUC, zapises vrednost sa drugom funkcijom (RegWriteValue valjda) i to je to. Poenta je da uneses varijablu key:HKEY koja ce biti jedna od parametara prvoj funkciji koju pozivas. Posle istu iskoristis kada pozivas drugu funkciju. Lako zar ne? :) Ako ima problema vici, ali od mene mozes da dobijes odgovor tek za vikend...

P.S. Inace, BPLove koristite SAMO kada imate kolekciju od nekoliko aplikaciaj koje zajedno koriste VCL (ili neki vas paket). Tako cete ukupnu velicinu kolekcije smanjiti. Pozdrav
www.milanaleksic.net
---
Don't try to impress me... I'm good !
03.12.2003. u 09:50 

reiser
Beograd

Član broj: 7895
Poruke: 1903
62.108.97.*



Profil

icon Re: Smanjenje velicine executable fajla ?03.12.2003. u 22:55
Hvala svima na odgovorima, resio sam. Evo source koda, mozda ce nekome biti od koristi :
Code:

// Delete key from Registry
procedure RegDelKey(root : HKEY; path, value : String);
var
 hndKey : HKEY;
begin
 RegCreateKey(root, PChar(path), hndKey);
 RegDeleteValue(hndKey, PChar(value));
 RegCloseKey(hndKey);
End;

// Add key to Registry
procedure RegAddKey(root : HKEY; path, name, value : String);
var
 hndKey : HKEY;
begin
 RegCreateKey(root, PChar(path), hndKey);
 RegSetValueEx(hndKey, PChar(name), 0, REG_SZ, PChar(value), Length(value) + 1);
 RegCloseKey(hndKey);
End;
03.12.2003. u 22:55 

[es] :: Pascal / Delphi / Kylix :: Smanjenje velicine executable fajla ?

[ Pregleda: 1832 | Odgovora: 12 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.