zlibでzip解凍

swfのZlibBitmapDataをデコードするのに使った。

  1. ココからwin32用のzlibライブラリを持ってくる
  2. 中にあるzlib1.dllをsystem32の下にでも置く
  3. zlib.libをプロジェクトのフォルダに置いてリンクする設定をする
    • vc++2005なら「プロジェクト>XXXのプロパティ>構成プロパティ>リンカ>入力>追加の依存ファイル」にzlib.libを追記
  4. ソースに #include "zlib.h" を追記
  5. uncompress()関数を使う。
    • 第一引数にデコードしたデータを格納するバッファ。デコードされたデータのサイズ分確保しておくこと
    • 第二引数は第一引数のサイズをいれた変数へのポインタ。解凍が成功したら、解凍後のサイズが入る
    • 第三引数はzip圧縮されたデータのバッファ
    • 第四引数は第三引数のサイズ
  6. uncompress()の返り値はちゃんとチェックしてね。詳細はzlib.hにコメントされています。