C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: VBからUNLHAを使用してファイルの圧縮したい


(過去ログ 17 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■6749 / inTopicNo.1)  VBからUNLHAを使用してファイルの圧縮したい
  
□投稿者/ SAMOAN (1回)-(2007/08/23(Thu) 09:54:18)

分類:[VB.NET/VB2005] 

VBからUNLHAを使用してファイルの圧縮したいのですが、どなたかご存知なら教えて下さい。

UNLHA32.DLLのUnlhaという機能を使用すると圧縮できることは分っているのですが商用利用に関しては
制限があるようなのでUNLHA.DLLを使用したいのですが、 Unlhaの説明には

機能 解凍を行います。

とだけかかれているのですが、圧縮機能は無いのでしょうか?

COMMAND.TXT内の説明には下記の記述があるのでできると思うのですが

***********************************************************************
%2. 命令の詳細
a: 書庫にファイルを追加
 ファイルを圧縮して書庫に書き換え・追加します。書庫が存在しなけ
れば,新しく作成します。書庫の中に同じ名前のファイルがある場合は,
強制的に書き換えます。"-c" スイッチ付きの 'u' 命令と同じです。も
し,"-r" スイッチが指定されていれば, UNLHA.DLL は,指定されたワ
イルド名に合致するようなサブディレクトリのすべてのファイルを追加
します。

例: a -r archive subdir\*.*
subdir\ 以下のすべてのファイルを圧縮して格納
***********************************************************************

どの機能を使用すればできるのか分りません。どなたか詳しい方がいらっしゃいましたら
ぜひ教えていただきたく思います。よろしくお願いいたします
引用返信 編集キー/
■6751 / inTopicNo.2)  Re[1]: VBからUNLHAを使用してファイルの圧縮したい
□投稿者/ ぽぴ王子 (258回)-(2007/08/23(Thu) 10:33:02)
ぽぴ王子 さんの Web サイト
No6749 (SAMOAN さん) に返信

> UNLHA32.DLLのUnlhaという機能を使用すると圧縮できることは分っているのですが商用利用に関しては
> 制限があるようなのでUNLHA.DLLを使用したい

制限というか、事前連絡が必要ですと書かれています。
http://www2.nsknet.or.jp/~micco/micindex.html
【このWebページについて】の部分です。以下引用
>  商用・公用・私用等にかかわらず, 書籍等への収録やソフトへのバン
> ドルについては条件がありますので, 必ず事前に連絡をお願いします。
> 企業等での業務利用や業務用ソフトでの使用を前提とした転載・配布等
> もこれに含みます。 連絡がなかった場合には, しかるべき処置を講じさ
> せていただく場合があります。

UNLHA.DLL は16ビット用のようです。32ビット環境でも使えないことはない
と思いますが、あまりお勧めできません。また、作者様も UNLHA32.DLL と
同じ方なので、たぶんライセンスも同様なのではないでしょうか。

使い方は UNLHA.DLL も UNLHA32.DLL も同じような使い方になると思い
ます。

ところで、商用利用云々ということは、何かお仕事で UNLHA32.DLL を使お
うとされているのでしょうか。
引用返信 編集キー/
■6755 / inTopicNo.3)  Re[2]: VBからUNLHAを使用してファイルの圧縮したい
□投稿者/ SAMOAN (2回)-(2007/08/23(Thu) 10:55:59)
> UNLHA.DLL は16ビット用のようです。32ビット環境でも使えないことはない
> と思いますが、あまりお勧めできません。また、作者様も UNLHA32.DLL と
> 同じ方なので、たぶんライセンスも同様なのではないでしょうか。

UNLHA.DLLの説明には商用利用に関しての記述がなかったので
UNLHA.DLLなら使用して問題ないのかと思っておりましたが、
そうではないのでしょうか?

>
> 使い方は UNLHA.DLL も UNLHA32.DLL も同じような使い方になると思い
> ます。
>

先述したように、説明を見るとUnlhaの機能に違いがあり,UNLHA32.DLLでは
簡単に圧縮できたのですが、UNLHA.DLLではエラーとなってしまいました。


> ところで、商用利用云々ということは、何かお仕事で UNLHA32.DLL を使お
> うとされているのでしょうか。

はい。仕事上で圧縮が必要なのでVBからコールして圧縮できるいい方法が
ないかと調査中です。


引用返信 編集キー/
■6759 / inTopicNo.4)  Re[3]: VBからUNLHAを使用してファイルの圧縮したい
□投稿者/ ぽぴ王子 (259回)-(2007/08/23(Thu) 12:35:44)
ぽぴ王子 さんの Web サイト
No6755 (SAMOAN さん) に返信

> UNLHA.DLLの説明には商用利用に関しての記述がなかったので
> UNLHA.DLLなら使用して問題ないのかと思っておりましたが、
> そうではないのでしょうか?

記述がない=問題がない というわけではないと思います。
むしろ 記述がない=確認が必要 じゃないでしょうか。
作者のMicco氏が UNLHA.DLL を作ったときはライセンスについて深く意識
していなかったけれども、UNLHA32.DLL を作ってからは商用利用などにつ
いて確認を必要とするようにしたとも考えられますし。
だとすれば、UNLHA.DLL のライセンスがどのようになっているのかは現在
は不明ともいえます。書いてなかったから使っていいのね、と勝手な解釈
で問題が起きるよりは、あらかじめ確認しておくべきでしょう。
(特に商用利用する気であればなおさらです)

> 先述したように、説明を見るとUnlhaの機能に違いがあり,UNLHA32.DLLでは
> 簡単に圧縮できたのですが、UNLHA.DLLではエラーとなってしまいました。

エラーとなった件はどこにも先述されていないですね。
機能的にも、コマンド文字列を渡す部分は同じだと思いますし(自信はない
ですが)コマンドライン自体は UNLHA.DLL と UNLHA32.DLL でそれほど違
いはないように思えます(どのあたりで機能の違いがあると判断されました
か?)。
エラーとなったのであれば、どういった処理をしてどのようなエラーが発生
したのかを書いていただけると解決が早いと思います。
(ただ手元に環境がないので今すぐは試せませんが)

むしろ、ライセンスを気にして UNLHA32.DLL ではなく UNLHA.DLL を使うぐ
らいであれば、Micco 氏に連絡を取って商用利用の許可を得た上で
UNLHA32.DLL を使うのが正しいやり方だと思います。
前述のように UNLHA.DLL は16ビット用ですし、32ビット環境では
UNLHA32.DLL を使ってくださいということだと思います。
引用返信 編集キー/
■6764 / inTopicNo.5)  Re[4]: VBからUNLHAを使用してファイルの圧縮したい
□投稿者/ SAMOAN (3回)-(2007/08/23(Thu) 14:25:01)

> エラーとなった件はどこにも先述されていないですね。
> 機能的にも、コマンド文字列を渡す部分は同じだと思いますし(自信はない
> ですが)コマンドライン自体は UNLHA.DLL と UNLHA32.DLL でそれほど違
> いはないように思えます(どのあたりで機能の違いがあると判断されました
> か?)。
> エラーとなったのであれば、どういった処理をしてどのようなエラーが発生
> したのかを書いていただけると解決が早いと思います。

失礼しました。書いておりませんでした。

UNLHAの説明には
機能 解凍を行います。
としか書かれていないのでできないのかなあ、と思ったのですが。
実行した処理は下記です。

*********************************************************************************
   On Error GoTo FileCompress_Error

szFile = "C:\TEST.XLS"
SendStr = "a -r archive " & szFile
Unlha SendStr, Rtcd, 255 'UnLHA実行

MsgBox ("ファイル圧縮中に成功しました。")

Exit Function

FileCompress_Error:
MsgBox ("ファイル圧縮中にエラー発生しました。" & Str(Err))
End Function
***********************************************************************************

メッセージにはエラー番号48が出力されました。
48はDLL読み込み時のエラーと書いてありましたが
DLLが見つからないのでしょうか?
unlha.dllは C:\WINNT\system
の下にコピーしたのですが。




引用返信 編集キー/
■6775 / inTopicNo.6)  Re[5]: VBからUNLHAを使用してファイルの圧縮したい
□投稿者/ ぽぴ王子 (260回)-(2007/08/23(Thu) 18:03:09)
ぽぴ王子 さんの Web サイト
No6764 (SAMOAN さん) に返信

> UNLHAの説明には
> 機能 解凍を行います。
> としか書かれていないのでできないのかなあ、と思ったのですが。

UNLHA.DLL ひいては UNLHA32.DLL もそうですが、元々別の方の作られ
た LHA.DLL というものがあり、そこから派生したものです。
元々解凍専用でしたが、圧縮機能も追加されました。
「解凍を行います」しか書かれていないのはたぶんそのせいだと思います。

統合アーカイバプロジェクトの UNLHA32.DLL のページから引用
> LHA.DLL の機能的な不備(あくまでも本プロジェクトのAPI仕様と言う意
> 味で、ですが^^)に業を煮やしたMicco氏が、独自に LHA.EXE(吉崎栄
> 泰氏作成。DLL 化に快諾いただいた吉崎氏に感謝)のソースを元に開発
> したものが、UNLHA.DLL(16bit版) です。
> その名の通り、元々は解凍専用でしたが、当然の帰結として圧縮機能も
> 付きました(^_^;)



> メッセージにはエラー番号48が出力されました。
> 48はDLL読み込み時のエラーと書いてありましたが
> DLLが見つからないのでしょうか?
> unlha.dllは C:\WINNT\system
> の下にコピーしたのですが。

エラーコード 48 が発生する理由はほかにもありそうです。
例えば VB.NET では16ビットDLLが扱えないとか(真偽のほどはわかりません)。

それとは関係ないですが。

前述の Micco さんのページですが、引用部分の前に
> ダウンロード・ページで公開されているソフトについては(以下略)
という文章がありましたので、UNLHA32.DLL だけでなく UNLHA.DLL も同
様のライセンスと考える必要があると思います。

であれば、動かない UNLHA.DLL を使用するよりは UNLHA32.DLL を利用
して、なおかつ Micco 氏に商用利用の許可を取るのがいいと思います。
引用返信 編集キー/
■6792 / inTopicNo.7)  Re[6]: VBからUNLHAを使用してファイルの圧縮したい
□投稿者/ よねKEN (70回)-(2007/08/23(Thu) 21:20:45)
よねKEN さんの Web サイト
>>メッセージにはエラー番号48が出力されました。
>>48はDLL読み込み時のエラーと書いてありましたが
>>DLLが見つからないのでしょうか?
>>unlha.dllは C:\WINNT\system
>>の下にコピーしたのですが。
>
> エラーコード 48 が発生する理由はほかにもありそうです。
> 例えば VB.NET では16ビットDLLが扱えないとか(真偽のほどはわかりません)。

32bit環境で16ビットのDLLを扱うにはサンクがどうとか、
って辺りを理解しないと実現できなかったと思います。(自分でやったことはない上にうろ覚えの記憶ですが)

後こういうスレがありましたので、WindowsVistaで動かないのは今からのアプリではまずいでしょう。
http://vsug.jp/tabid/63/forumid/72/postid/6653/view/topic/Default.aspx

lzhでないといけないわけでなければ、zipで圧縮してはいかがですか。
http://dobon.net/vb/dotnet/links/createzipfile.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -