> copy /b program.exe /b + arhiva.zip /b rezultat.exe /b
> Dakle rezultat.exe sadrzi i moj program i zip fajl. E sada, kada se pokrene ovaj program i korisnik pritisne dugme Extract, onda se desava sledece:
> 1) Napravim kopiju exe fajla
> 2) Otvorim tu kopiju
> 3) Seek-ujem do 232632-tog bajta, i nakon toga ostatak upisujem u jedan poseban fajl
> 4) Taj poseban fajl je zapravo onaj prvobitni ZIP fajl
> 5) Sada, koristeci ZipMaster biblioteku, ja extractujem taj zip fajl negde
> 6) Na kraju brisem temp fajlove
> Ovo sve lepo radi, ali problem je sto ZipMaster koristi poseban fajl DelZip179.dll, tj. bez njega nece da radi. Posto je glupo da imas
> self-extracting arhivu koja ne radi bez nekog dll-a, onda je resenje da taj dll linkujem zajedno sa ostatkom programa u jedan jedinstven
> exe fajl, tj. da uradim staticki link.
Evo kako je lakše kada opišeš pravi problem. Nije neophodno da radiš tako kako si naumio, postoje biblioteke (recimo Chief's UNZIP ) za unzip sa source kodom tako da ih možeš slobodno uvezati sa ostatkom programa. Varijanta dva je da ne koristiš zip kao arhiver već zlib koji je dobro podržan u Delphiu i može se uključiti u sam exe.
Ako je iz nekog razloga ZipMaster obavezan uslov, dll možeš uključiti u exe kao resurs, raspakovati ga kada ti zatreba i posle ga obrisati.
> Ili jednostavno receno, kako mogu staticki da linkujem LIB fajl u Delphiju?
Nije moguće. Koristiš pogrešnu terminologiju, lib fajl sadrži informacije o načinu povezivanja programa i funkcija koje se nalaze u dllu, on ne sadrži izvršni kod i ne može se ni uključiti u exe, ono što se može uključiti u exe su .obj fajlovi.