====================================================================== ACE 書庫 統合アーカイバ仕様展開 DLL UnAceV2J.DLL Version 0.09 ====================================================================== Niiyama(HEROPA) 0.はじめに このたびは「UnAceV2J.DLL」をダウンロードして頂きありがとうございます。 これは ACE 形式の書庫の展開を行うプログラム UnAceV2.DLL のラッパ DLL です。 また、『統合アーカイバAPI仕様』(仮称)に準拠しています。 なお、「API仕様」は現在進行形のプロジェクトです。 したがって、この UnAceV2J.DLL に含まれる機能も、最終決定版ではないと いうことを充分に認識の上ご使用ください。 それから貴方のソフトでこの DLL に対応する場合、出来るだけダイナミッ クリンク (LoadLibrary/GetProcAddress)で使用するようにして、 UnAceV2J.DLL が無い環境でも、問題なく動作するような設計にしてくださ い。 「じゃぁ、どうするんじゃい!」と聞かないのはお約束(^_^;) UnAceV2.DLLの入手先は、ACE Compression Software(http://www.winace.com) で手に入れることができます。 1.ファイルについて 配布ファイルを展開すると以下のファイルが得られます。 UnAceV2J.txt : このドキュメント。 UnAceV2J.DLL : ライブラリ本体。 UnAceV2.DLL : ACE Compression Software製のACE圧縮ファイル展開 用DLL UnAceV2JCMD.txt : UnAceV2J.DLL でのコマンド等についての説明ファイ ル。 UnAceV2JAPI.txt : UnAceV2J.DLL で使用できるAPIの説明書です。 UnAceV2J.h : UnAceV2J.DLL を使用するためのヘッダファイル。 UnAceV2J.lib : UnAceV2J.DLL を静的リンクするためのライブラリ。 なおこれはVC++用ですので、BC++等では使用出来ま せん。 また上記にも書いたように、出来ればこれは使わず にダイナミックにリンクする方法をお取りください。 src\*.* : UnAceV2J.DLL のソース一式。Visual Studio 2010 上で開発された C++ アプリケーションソース。 2.使い方 これはライブラリのみですので、単独では使用できません。 A. プログラムから API については,UnAceV2JAPI.txt をご覧ください。 UnAceV2J.DLL は、統合アーカイバ仕様DLLのAPI仕様のほとんどを満た している完成品です。(バグがあったらごめんなさい)アプリケーション から使用するための必要最低限の API は実装されています。 UnAceV2J.dll を使用するには UnAceV2J.h をインクルードしリンク時 に UnAceV2J.lib をリンクするか、LoadLibrary()/GetProcAddress() によりダイナミックにリンクすることが必要です(出来るだけこちら の方法を)。 B. 一般ユーザーから この DLL を使用するためには、対応したアプリケーションが必要です。 また、この DLL は Windows のシステムフォルダ(通常は \Windows\system32\)にコピーしてお使いください。 上記以外の場所に置くことは、今後の本 DLL のバージョンアップなどに よる仕様変更の際、重大な問題を引き起こす可能性もありますので、 十分注意が必要です。 また、同梱している UnAceV2.DLL を同じディレクトリにコピーしておく 必要があります。 3.著作権及び転載について UnAceV2.DLL の著作権は ACE Compression Software にあります。 Copyright(c)(2000-2005) ACE Compression Software. ALL RIGHTS RESERVED. 統合アーカイバ仕様の DLL 作成部分に関しては、新山(へろぱ) が著作権を 保有します。 また、本ソフトウェアを使用することによって如何なる損害が発生しても 作者は一切責任を負わないものとします。 全ては自己責任の元でお使いください。 4.サポート A. Web サイト https://sites.google.com/site/heropa/ B. メール heropa at google com (メールアドレスになるように脳内変換してください) 5.ACE 書庫作成機能について ACE 書庫からの展開機能に関しては、フリーソフトとして UnAceV2.DLL が 提供されていますが、圧縮機能に関しては別DLLで有料となっており、私自 身レジストするほど ACE 書庫の魅力を感じないので、対応する予定はあり ません。 6.『指定外の場所へファイルが展開されてしまう脆弱性』の問題 『指定外の場所へファイルが展開されてしまう脆弱性』の問題というのが 書庫を展開するDLLやアプリケーション側で対応されたりしていますが、 後発の UnAceV2J.DLLでは、対応済みで、コマンドラインオプションで明示 的に「--ea0」としない限り展開されません。詳しくは、UnAceV2CMD.txtの 「--ea」オプションを参照してください。 7.バージョン履歴 2004/11/30 Ver0.01 最初のバージョン。 2004/12/25 Ver0.02 偽Unace32.dll機能を実装。ネイティブなUnAceV2J.DLL をコールするラッパAPIで、UnAceV2J.DLLをUnace32.dll とリネームすると、Unace32.dllを利用するアプリケー ションから使える...かも。 「l」コマンドの場合は、パス情報を出力しないように した。(これが実用的かどうかは別として、UnAce32.exe の仕様に合わせるということで) Unlha()の仕様に倣い、UnAce()の時に、引数の_hwndに ::EnableWindow(_hwnd, FALSE) するようにした。 UnAceV2.DLLを同梱。 ソース添付。 2004/12/28 Ver0.03 UnAceFindFirst, UnAceFindNextでの書庫内データ取得 時に最後のファイルが取得できないバグの修正。 2005/05/17 Ver0.04 storedメソッドで圧縮されたファイルをUnAceGetMethod で取得できないバグの修正。 2006/02/25 Ver0.05 コンパイル時のオプションでUnAceFindFirst等でファイ ル列挙がちゃんとされない場合があるので、オプション を見直した。(結局デフォルト) 2010/05/27 Ver0.06 Visual Studio 2005でリビルド。 UnAceV2.DLLはVer2.6のものを同梱。 2010/07/04 Ver0.07 Visual Studio 2010 Professional でリビルド。 2010/08/08 Ver0.08 Visual Studio 2010 のMFCをスタティックリンクすると DLLのサイズが巨大になるので、MFCをやめてATL/WTLを 使用するようにソースを修正。 レスポンスファイルの両端が「"」で囲まれている場合 に対応。 書庫内ファイル数(用バッファ)の制限を解除。 2016/03/29 Ver0.09 Visual Studio 2015 でリビルド。サポートサイトのURL とメールアドレスを変更。 ----------------------------------------------------------------------