外部DLLをつかわずにZIPを解凍する(VC++でzlibを使用する)

zlibというライブラリを使えばUNZIP.DLLなどの外部DLLを使用しなくてもZIPの圧縮解凍が可能になります。
これを書いている2002/06/08現在の最新版はzlib 1.1.4です。

zlibのビルド(zlib.libの作成)

  1. まずはzlib Home Siteからzlib114.zipというファイルを落としてきます。
  2. VC++を起動して、「ファイル」→「新規作成」から「Win32 Static Library」を選択します。
    「プロジェクト名」と「位置」は適当に決めて「OK」を押します。
    ここでは「zlib」と「c:\zlib」を指定したことにします。
    次のダイアログの「MFCサポート」は、MFCプログラムに組み込む場合はオンにしておいてください。
  3. 「位置」に指定した場所(ここではc:\zlib)にzlib114.zipを解凍します。
    VC++で「プロジェクト」→「プロジェクトへ追加」→「ファイル」でc:\zlibにあるcファイルとhファイルを全て追加します。
  4. VC++でおもむろにビルドします。エラーがでなければ成功です。
    c:\zlib\debugもしくはc:\zlib\releaseのなかにzlib.libができていると思います。

zlibを自作プログラムに組み込む

  1. 以下のファイルを組み込みたいプログラムのディレクトリにコピーします。
    c:\zlib\contrib\minizip\unzip.h
    c:\zlib\contrib\minizip\unzip.c
    c:\zlib\zconf.h
    c:\zlib\zlib.h
    c:\zlib\debug\unzip.lib もしくは c:\zlib\release\unzip.lib
    zip.cpp
    zip.h
  2. VC++で「プロジェクト」→「プロジェクトへ追加」→「ファイル」でコピーしたunzip.cとzip.cppを追加します。
  3. あとはzip.hをインクルードすれば、zipを解凍するUnzip関数が使えます。
  4. Unzip関数の使い方
    bool Unzip(const string &strZipFilename, const string &strTargetPath);
    strZipFilename 解凍したいzipファイルを指定します。
    strTargetPath 解凍先のディレクトリ名を指定します。必ず末尾を\にしてください。
    戻り値 解凍に成功すればtrue、失敗すればfalseを返します。



[戻る]

logo