自己解凍書庫の作り方

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 自己解凍書庫の作り方

by hira » 2006年4月06日(木) 19:57

OrangeArchiverには自己解凍書庫のソースは付いてません(^^;;
Oar32.dll のほうには付いています(自己解凍書庫の実質的な内容は同じ)。

ところで、自己解凍書庫を自作するときには解凍部分のアルゴリズムを書かなければなりません(ライブラリを使ってもかまいませんが、別途外部DLL等を必要とするものであってはいけません。環境依存しない、Windowsプレインストール時に入っているようなDLLならOK)。
アルゴリズム部分はここでは省いて、流れだけ解説しておきます。
(自己解凍書庫は基本的に EXEの部分 + 書庫の部分 に分けることができます)

●自己解凍書庫のEXEの部分を作成する
1. GUIでもCUIでもOKなので、解凍先のパスを入力してもらえるようにコーディング。
2. 解凍がリクエストされたら
 a. 自分自身のファイル名を GetModuleFileName() で取得し、それを引数に指定して GetEXESize() を呼び出す(自分自身のEXE部分だけのサイズが得られる)。  b. 自分自身を CreateFile() 等を使ってオープンし、aで取得したサイズ分だけ SetFilePointer() でファイルポインタを進めた後(このときファイルポインタは書庫の先頭を指している)、解凍処理。

●自己解凍書庫の作成
EXE部分と目的の書庫を結合するだけです。
結合部分のコードは省略します。

簡単な流れはこんな感じです。

by C1000 » 2006年4月06日(木) 18:54

hiraさんの"OrangeArchiver"が参考になると思います。(ソースコードが付いています。)
http://hira.hopto.org/ab.htm

自己解凍書庫の作り方

by popkou » 2006年4月06日(木) 09:46

誰か、自己解凍書庫の作り方を教えてください。

ページトップ