============================================================================ Jack32.dll version 0.20 木村 利靖 Toshinobu Kimura ============================================================================ 0.はじめに ============ このたびは「Jack32.dll」をご使用いただきありがとうございます。 これは、ある程度大きなサイズのファイルを小さく切り裂いて複数の分割ファイル を作成したり、また切り裂かれたファイルを元のファイルに復元する DLLです。 32ビット版ですので、Windows95以降、Windows NT(i386用)で動作が可能です。 単独で使用することはできません。対応したアプリケーションが必要です。 また、Jack32.dllの APIなどの仕様は、現在「統合アーカイバプロジェクト」 ( http://www.csdinc.co.jp/archiver/ )を中心に進行中の『統合アーカイバAP I仕様』(仮称)に準拠しています。 なお、「API仕様」は現在進行形のプロジェクトです。したがって、この Jack32.dllに含まれる機能も、最終決定版ではないと言うことを充分に認識の上 ご使用ください。 それと貴方のソフトでこの DLLに対応する場合、ダイナミックリンクで使用する ようにして、Jack32.dllが存在しない環境でも( 切り裂き・復元の機能が使えな いだけで )問題なく動作するような設計にしてください。 1.ファイルについて ==================== Jack32.txt : このドキュメントです。 Jack32.dll : ライブラリ本体です。 command.txt : Jack32.dllでのコマンド等についての説明ファイルです。 api.txt : Jack32.dllで使用できる APIの説明書です。 Jackapi.h : Jack32.dllを使用するためのヘッダーファイルです。 Jack32.lib : Jack32.dllを静的リンクするためのライブラリです。 なおこれは VC++用ですので、BC++等では使用出来ません。 また上記にも書いたように、できればこれは使わずにダイナミック にリンクする方法をお取りください。 2.使い方 ========== これはライブラリのみですので、単独では使用できません。 A. プログラムから ------------------ APIについては、api.txtをご覧ください。 Jack() APIで指定するコマンドラインの詳細は command.txtをご覧ください。 Jack32.dllを使用するには Jackapi.hをインクルードし、リンク時に Jack32.libをリンクするか、LoadLibrary()/GetProcAddress() により ダイナミックにリンクすることが必要です(できるだけこちらの方法を)。 B. 一般ユーザから ------------------ この DLLを使用するためには、対応したアプリケーションが必要です。 また、この DLLは Windowsのシステムディレクトリ(通常は Windows95/98 なら \Windows\system\、WindowsNT/2000なら \WinNT\system32\ )にコピー してお使いください。上記以外の場所に置くことは、今後の本 DLLのバージョ ンアップなどによる仕様変更の際、重大な問題を引き起こす可能性もあります ので、十分注意が必要です。 3.転載及び著作権について ========================== Jack32.dllは、本ライブラリを利用する権利を、必要とされる方々に無償で貸与 する、いわゆるフリーソフトウェアです。 自己復元モジュールは UPXを使用して圧縮しています。 The Ultimate Packer for eXecutables Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar Jack( .JAK )形式ファイルの作成、統合アーカイバ仕様に準じた DLLの作成に ついての著作権は、木村 利靖が保有しています。 プログラムに対して改変を加えたり、配布ファイルの内容を変更しないという 前提条件つきで使用、転載、配布は自由ですが、転載、配布時に、メディア代等 以上の手数料を徴収したり、使用に制限をつけることを禁じます。 また、転載、配布する場合には連絡をお願いします。 またこのソフトを使用することによって生じた結果等について、作者は責任を 負わないこととさせていただきます。 4.公開先・サポート ==================== ・「統合アーカイバプロジェクト」( http://www.csdinc.co.jp/archiver/ ) ・「ベクター」( http://www.vector.co.jp/ ) で公開していただいています。 DLL に関すること( 不具合報告や機能追加などのご要望等 )は、私あて ( EZL02235@nifty.ne.jp )に直接メールしてください。 5.判明している不具合・不具合のような仕様(^^; ============================================== ・version 0.20以降で作成した自己復元形式 Jackファイルは、version 0.17以前 の Jack32.dllでは Jackファイルと認識できません。通常の Jackファイルは問 題なく認識できます。version 0.17以前の Jack32.dllで作成した Jackファイ ル、自己復元形式 Jackファイルは version 0.20以降でも認識可能です。 6.バージョン履歴・覚え書き ============================ version 0.20 2002/06/01 ・全面作り直し。(^^; ・ファイルヘッダにヘッダのチェックサムと元ファイルの属性も保存するよう に変更しました。 ・切り裂き、復元時のダイアログに表示する文字列を指定する -t スイッチを 追加しました。 ・自己復元スタブモジュールを UPXで圧縮しました。 ・英語表示に暫定対応しました。動作未確認です(^^;; version 0.17 2001/05/12 ・Visual Studio 6.0 SP5 での再ビルド。 ・切り裂くサイズの最大値を約4GByteに拡張しました。未確認ですけど(^^;; ・Jack() API の第1引数 hWnd を有効にしました。 NULL を指定するとこれまでと同じ動作をします。 ・進捗ダイアログを表示するとき前面に配置する指定を止めました。 ・進捗ダイアログをデスクトップの中央に表示していましたが、Jack() APIの 第1引数 hWnd が指定されている場合、オーナーウィンドウの中央に表示す るように変更しました。 ・進捗ダイアログを消去した後、ダイアログに表示していた情報の残像がオー ナーウィンドウに残ってしまう不具合を修正しました。 version 0.16 2000/10/14 ・Visual Studio 6.0 SP4 での再ビルド。 ・version 0.14 で修正し忘れていた復元時のタイムスタンプずれを 修正しました。(^^;;; ・切り裂きファイルの復元時、処理途中でキャンセルした場合に例外が発生 する場合があった不具合を修正しました。 ・復元途中でキャンセルした場合、Jack() の戻り値で ERROR_USER_CANCEL を 返さない場合があった不具合を修正しました。 ・切り裂き、復元時のパラメータチェックを少し強化し、操作の対象に 存在しないファイルを指定された場合、エラー終了するようにしました。 version 0.15 2000/05/13 ・切り裂き、復元の対象にフォルダを指定された場合、エラー終了するように しました。 version 0.14 2000/03/22 ・切り裂きファイルのタイムスタンプが 9 時間ずれる不具合を修正。 すっかり忘れていました (^^;; ・迂闊にも各種パス系の処理に SHLWAPI.DLL を使用してしまっていたため、 IE の存在しない環境で動作しなかった不具合を修正。 約 20 の API を自前の関数で置き換えた。 ## 自己解凍スタブのサイズが増加しなくて良かった (^^;; version 0.13 2000/03/09 ・FDの空き容量が指定されている切り裂きサイズより少ない場合、残って いる切り裂きファイルのサイズがFDの空き容量以内であっても、次の FDに入れ替える旨のメッセージを表示していた不具合を修正。 ・FDに切り裂きサイズぎりぎりの容量( 差が数バイトから数十バイト以下 ) しか残っていない場合、切り裂きを実行するとエクスプローラが吹っ飛んで しまっていた致命的なバグを修正。 ・作業用フォルダの作成に失敗した場合のリカバリ処理を追加。 version 0.12 2000/01/27 ・FDドライブの判定を"正当な"方法に変更した。ただし、Windows NT に ついては未テストです (^^; ・不正なコマンド指定に対するチェックを(少しだけ)強化。 ・いつからかFDに切り裂けなくなっていた不具合を修正。 ・システムドライブのルートに置かれた切り裂きファイルを復元しようと すると、例外が発生し、場合によりエクスプローラが落ちていた不具合を 修正。ファイル種別をチェックするときに、スワップファイルもふつうの ファイルのように読みにいっていたせいです (^^; NT でも問題無いようにしたつもりですが、未テストです (^^; ・長いパスをもつファイルを切り裂くときのプログレスダイアログの表示が おかしくなっていた不具合を修正。 version 0.11 2000/01/12 ・切り裂き形式、切り裂きサイズを Jack() API、JackRipper() API で 指定可能にした。これにより JackRipper() API のパラメータが変更に なった (^^;;; ・szMode に "-jack-" を設定するように変更。 version 0.10 2000/01/10 ・表記文字列の半角カタカナを全角カタカナに統一した。 ・バージョンリソースの記述を少し変更。 version 0.09 1999/12/05 ・呼び出し規約を _cdecl から _stdcall に変更。 ・Visual C++ 6.0 SP3 での再ビルド。 version 0.08 1999/10/29 ・後々のコマンドやオプションの追加に備えて、コマンドライン取得方法を 汎用クラスを使用するように変更。機能的にはほぼ同等。 version 0.07 1999/10/11 ・復元時にタイムスタンプを復元するのを忘れていた不具合を修正。 version 0.06 1999/10/09 ・ファイルを同一フォルダに切り裂こうとしたとき、そのファイルが切り裂き 対象にならない小さなサイズであればただコピーしようとするが、 同じファイル名へのコピーになるため、ファイルシステムでエラーになる 問題の対応。以前は問題なかったのに、version 0.01 の分離作業時に 迂闊にもチェックをはずしてしまっていたらしい。 ・汎用クラスの変更に伴う修正。 version 0.05 1999/9/17 ・汎用クラスの変更に伴う修正。 ・引き続きドキュメントを修正。 version 0.04 1999/9/02 ・「切り裂き」処理の初期化のタイミングに問題があり、2度以上連続して 「切り裂き」を実行できなかった不具合の対処。 ・ドキュメントの記述ミスを修正。 version 0.03 1999/8/29 ・自己復元形式スタブにアイコンを追加( いまいちかも )。 ・それらしいドキュメントを作成。 version 0.02 1999/7/02 ・JackOpenArchive、JackFindFirst、JackFindNext、JackCloseArchive、 JackGetArcOriginalSize、JackGetArcCompressedSize の各APIを追加。 version 0.01 1999/4/26 Jack32.dll の最初のバージョン ・拙作アプリケーション( 当時非公開 )の全面作り直しに伴い、 ファイルの切り裂き・復元機能を分離し、Jack32.dll を作成。 ------------------------------------------------------------------------------