Win32APIでLZMA形式で圧縮解凍

[戻る]
STS 2012/02/23(木) 13:57:59
Win32APIのみでLZMA形式の圧縮解凍をしたいのですが実現は可能でしょうか?
外部のDLLやSDKは使わずC/C++言語になります。

また、可能な場合はどのようにすればいいのでしょうか?

不可能なら、よりよい圧縮解凍方法はあるのでしょうか?

win7.32/vs2010/vc++を使用しています。

仲澤@失業者 2012/02/23(木) 14:51:51
LZMA SDK を自作したいという希望ですね。
これはオープンソースのようですね。

Windows用に自給する意味はまったくありませんが、
仕様書とソースが公開されているようなので、
C++コンパイラが使用できるCPUなら、
それ向けに作り直すことも可能かと思います。

STS 2012/02/23(木) 16:17:18
> LZMA SDK を自作したいという希望ですね。
 すみません。目的としてはCかC++の環境でLZMAの圧縮解凍を実現したいのです
が、SDKなどを使用しないと実現不可ということでしょうか?

> C++コンパイラが使用できるCPUなら、それ向けに作り直すことも可能かと思います。
 SDKをもとにして作りなおす場合結局はSDKを自作することになり、コード量が大
きくなってしまいます。

ツPツAツTツIツO 2012/02/23(木) 17:49:10
LZMA SDKで提供されている機能がWin32APIにあるのかと言う話ならないと思います。

そもそもMicrosoftとは関係無いところで実装されていると思うので
Win32APIにその機能はないと考える方が自然だと思います。
逆に機能提供されているのであれば、何らかの形で公開されているはず。
私自身はそういう記述を見た事がありません。
7-Zipを利用するのにわざわざDLLをインストールした位なので
そういう意味から考えてもWin32APIで提供されているとは考えにくいです。

Windows用のSDKを使わないと実現はできないと言うのが正解だと思います。
もしくは全く処理を自分でコーディングするかですね。

PATIO 2012/02/23(木) 17:49:59
ううっ、また名前の書き換えを忘れて送信してしまった。

上の投稿は私のものです。
すいません。

STS 2012/02/23(木) 19:03:24
[[解決]]
sdkの使用はできないので、ソースをもとに自分でコーディングするしかないみたいで
す。


PATIOさんありがとうございました。

仲澤@失業者 2012/02/23(木) 19:16:03
公開されているLZMA-SDKのコードはWin32-SDKではなく、
純粋なC++コードのようですね。

たいした手間ではないように思われるので、
ダウンロードして、コンパイルしてみたらどうでしょう。
・・サイズもちっちゃいし(ツールまで含んで、たった500K程度)。

PATIO 2012/02/24(金) 16:23:45
SDKを利用できない理由は何なのでしょう?

ソースコードが無いライブラリだと問題があるであれば、
仲澤@失業者さんが書かれているようにソースをダウンロードして
コンパイルする事でソースも保持した状態でライブラリも用意できます。
そのライブラリに対してテストが必要と言う話なら動作確認テストを
行なってみるのも手でしょう。
結局、同じ内容になるのであれば車輪の再開発になってしまうので
単に手間が増えるだけと言う気がします。
ライセンス問題を回避したいとかオープンソースのライブラリは
使ってはいけないという規約になっているとかなら仕方ないかもしれませんけれど。

にしても、ライセンス云々と言う話ならコードを参考にするのは微妙ですね。
フォーマット仕様を元に組んだら同じになったというならともかく
参考にして同じになったなら結果的には流用したのと同じになってしまう気がします。

古いスレッドには追加発言できません。