CL

18. 自己解凍 EXE の正体

LHA などの圧縮ファイルで自己解凍の EXEファイルは今日ではすっかり馴染み深いものとなっているが、弊社製品「HitPack」でもこの自己解凍方式の EXEファイルを作ることができる。
ライブラリーを *SAVF に保管して、それをダウンロードしてから HitPack で自己解凍式のEXEファイルとして保管して他のユーザーに配布することができる。
受け取った側では EXEファイルを実行するだけで iSeries400への導入を実行してライブラリーを復元することができる。
一体、この自己解凍EXEファイルとはどのような仕組みになっているのだろうか?
それはわかってしまえば実に簡単である。

自己解凍EXEは(解凍用 App + 保存データ)を連続したひとつのファイルとして保存されているだけだ。
解凍にあたってはこの EXE を起動すると 解凍用App がまず実行されるが(解凍用App + 保存データ)となっているので 解凍用App が保存データだけを自分自身から復元して別ファイルとして出力してそれを処理するだけである。
Win95 では EXE は直接、自分自身を読むことができないので一時的に作業ファイルを作成する必要があるが動作原理は同じことである。
これは VisualC++ や CでなくてもVisualBASIC や Java でも作成することができるであろう。
もちろん HitPack を購入すれば一番タカンタンであるが頑張れば自作も可能である。