MFCでzlib.libを使用する方法 – プログラミング – Home

MFCでzlib.libを使用する方法
 
通知
すべてクリア

[解決済] MFCでzlib.libを使用する方法


ブヒブヒ
 ブヒブヒ
(@ブヒブヒ)
ゲスト
結合: 15年前
投稿: 26
Topic starter  

いつもお世話になっております。
ブヒブヒでございます。

開発環境
WindowsXP SP3
Visual C++ 2005 SP1 MFC

VC++ 2005 MFCでzlib1.2.4を使用する方法を
教えていただけないでしょうか。

見よう見まねで組み込んでみたのですが、
LINKエラーが発生してビルドが成功しません。
zlibとMFCで使用しているDLLが異なっているため
のようですが私には解決方法がわかりませんでした。

#階層を保持したままファイルをアーカイブして
#リソースとしてExeに持たせ、実行時に
#任意のパスに解凍したいのです。
#特にzlibにこだわっているわけではないので
#他に良い方法があれば教えていただけないでしょうか。

大変申し訳ありませんが、
よろしくお願いいたします。


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

zlib1.dll をダイナミックリンクするのではなく、スタティックリンクしたいというこ
とでしょうか?

まず、 http://zlib.net/ から「zlib source code, version 1.2.4, zipfile format」
を落としてきて解凍します。
その中にある projects/visualc6/zlib.dsw を開いて変換します。
アクティブなソリューション構成を「LIB Release」にしてビルドをかければいいはずで
す。

ただ、zlib というのは、単にバイトデータを圧縮・展開する機能しかありませんので、
ディレクトリツリーを丸ごとという場合は、ファイルの列挙、読み込み、圧縮したデー
タの保存はアプリでやる必要がありますし、複数のファイルを一つに固めたときのファ
イルフォーマットも設計しなければなりません。
それよりは、zip のようなフォーマットを採用した方が楽だと思いますが。

zip の場合は、 http://sourceforge.net/projects/infozip/files/ から zip30.zip と
unzip60.zip をダウンロードして展開します。
zip の方は windll/visualc/lib/zip32z64.dsw を、unzip の方は
windll/vc8/unzip32.sln を開いて、それぞれ Release でビルドすればよいでしょう。

あと、リソースへの埋め込み・リソースからの展開は自前で書く必要があります。当
然。


返信引用
ブヒブヒ
 ブヒブヒ
(@ブヒブヒ)
ゲスト
結合: 15年前
投稿: 26
Topic starter  

aetos様
早速のお返事ありがとうございます。

zlibのみで階層を維持したまま、
フォルダを圧縮することができないのですか。。。
情報の収集不足でした。
zipフォーマットを採用すると言うことで進めていきます。

>zlib1.dll をダイナミックリンクするのではなく、スタティックリンクしたいというこ
>とでしょうか?
出来れば、Exe1個のみの構成にしたいので、DLLではなく、
スタティックリンクで考えています。
#しかし、ライセンスフリーのDLLでInとOutのパスを指定するだけで
#解凍してくれるものがあるのなら、DLLもありかな~と考えています。

>あと、リソースへの埋め込み・リソースからの展開は自前で書く必要があります。当
>然。
はい、リソースの埋め込みと展開は以前やったことがあるので大丈夫です。

もし、zipフォーマットでわからないところが出てきたら
よろしくお願いいたします。
ブヒブヒ


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

>出来れば、Exe1個のみの構成にしたいので、DLLではなく、
>スタティックリンクで考えています。
ではCAB形式を採用してはいかがですか。
XPならOS標準の機能でCABファイルの圧縮/解凍ができますよ。
http://www.eternalwindows.jp/installer/cabinet/cabinet07.html

#Windows 7 ならネイティブの Packaging API の機能を
#使うのもありかもしれませんね(^^


返信引用
ブヒブヒ
 ブヒブヒ
(@ブヒブヒ)
ゲスト
結合: 15年前
投稿: 26
Topic starter  

subaru 様
お返事ありがとうございます。

CAB形式について調べました。
Win2k以降だと、Cabinet.dllが標準でインストールされている
とのことなので、Cabinet.dllを利用しようかなと
考えております。

ただ、CallBackがよくわからないので勉強が必要ですが。

#Info-zipは企業で使用するにはライセンス関連で
#問題がおきると面倒なのであきらめました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました