Wiz_SingleEntryUnzip

zipを解凍する。

Info-ZIP Home Page

右下のUnZipのリンクにアクセス
右下のUnZipのリンクにアクセス

右下のUnZipのリンクにアクセス。

UnZipは6.0まで進んでいる
UnZipは6.0まで進んでいる

UnZipは6.0まで進んでいる。

下にスクロールしてDownloads
下にスクロールしてDownloads

下にスクロールしてDownloads。

こっちもFROZEN
こっちもFROZEN

こっちもFROZEN。

結局sourceforge
結局sourceforge

結局sourceforge

UnZipは6.xでもvc8用ビルドが用意されているがUnreleased Betasを選ぶ
UnZipは6.xでもvc8用ビルドが用意されているがUnreleased Betasを選ぶ

UnZipは6.xでもvc8用ビルドが用意されているがUnreleased Betasを選ぶ。

UnZip betas
UnZip betas

UnZip betas。

unzip610b.zipをダウンロード
unzip610b.zipをダウンロード

unzip610b.zipをダウンロード。

解凍して配置
解凍して配置

解凍して配置。

windll
windll

windll。

vc8
vc8

vc8。

ソリューションを開く
ソリューションを開く

ソリューションを開く。

こちらはDLLとexampleが揃っていてすぐビルドできた。
こちらはDLLとexampleが揃っていてすぐビルドできた。

こちらはDLLとexampleが揃っていてすぐビルドできた。

releaseも
releaseも

releaseも。

ここにDLL
ここにDLL

ここにDLL。

解凍には、Wiz_SingleEntryUnzipを使う。
UnZipだからUzp~かとおもったが、Wiz~である。
(この辺がなんとも・・・。)

新規作成
新規作成

新規作成。

空プロコンソール
空プロコンソール

空プロコンソール。

今回はさすがにc
今回はさすがにc

今回はさすがにc。

オプション
オプション

オプション。

インクルードにunzipのフォルダも追加
インクルードにunzipのフォルダも追加

インクルードにunzipのフォルダも追加。

ライブラリも
ライブラリも

ライブラリも。

プロパティでマルチバイト文字セット
プロパティでマルチバイト文字セット

プロパティでマルチバイト文字セット。

releaseも
releaseも

releaseも。

実行ファイルを適当に作っておいて横にdllを置く
実行ファイルを適当に作っておいて横にdllを置く

実行ファイルを適当に作っておいて横にdllを置く。

releaseも
releaseも

releaseも。

unzipの優先順位を上げる
unzipの優先順位を上げる

なんかビルドエラーが起こるなあと思ったら、zipのstructsを読んでしまっていたので、unzipの優先順位を上げる。

今回もshlwapiが要る
今回もshlwapiが要る

今回もshlwapiが要る。

PATH_MAX
PATH_MAX

PATH_MAXって何かと思ったが、zipのほうはこれでdefineしていたが、unzipにはないようなのでMAX_PATHに差し替え。

最終的に、main.cは、

こうなった。
Wiz_SingleEntryUnzipの第1から第4引数までで、コマンドラインを渡すようだが、難しそうなので、出力元と出力先の情報はDCLのほうに渡した。

test.zipを置く
test.zipを置く

test.zipを置く。

OK
OK

OK。

test.txtが置かれている。
test.txtが置かれている。

test.txtが置かれている。

ちゃんと書かれてる
ちゃんと書かれてる

ちゃんと書かれてる。
releaseも同様にできた。
複数ファイルや複雑なオプションはともかく、解凍はできた。

Sample/info-zip/Wiz_SingleEntryUnzip/Wiz_SingleEntryUnzip/src/Wiz_SingleEntryUnzip at master · bg1bgst333/Sample · GitHub