• 締切済み

VB.Net で Zlib.dll  但し ExpressEdition

はじめまして。 VB.Net Express Edition でプログラム開発中です。 必要上 Zlib.dll でZipファイルの圧縮/解凍をする必要が発生しました。 Webを調査して、参考となる技術情報は見つける事ができたのですが、 肝心の Zlib.dllの参照設定方法がわかりません。 参照/追加 で表示されるライブラリの一覧にZlibらしきものが見当たりません。(.Net , Com共に) 私の技術・知識が未熟な事もあるのですが、そもそもExpress Edition故の制限なんてこともあるのでしょうか? もしお時間ありましたら、アドバイス願います。 【補足】 ちなみに、今回はかくかくしかじかの理由でZlib.dllで開発するしか道がありません。 他の方法でZipファイル操作実現可能なのは存じております。

みんなの回答

回答No.4

> Declareの件なんですが、指示というかいわゆるこちらの仕事として開発する上での「開発規約」というもに違反してしまう為です。 それは, >> 結論から言うと、Declareではないですね。 の根拠ではないです。それが理由であるなら,「Declareではない」ではなく,「事情によりDeclareは使えない」です。 それはおいておくとして,Declareがダメなのか,P/Invokeがだめなのか,どちらですか。 単に前者であるならば,DllImport属性使ってしまえば見た目上Declareはなくなります。やっていることは一緒ですが。 後者であるならば,そもそもzlib.dllの使用自体が規約に反します。 > 加えて外部的なDLLを使用するのが今後運用上問題なしとの断言ができないという見解でもあります。 > つまり、.Netの中だけでクローズする形をとりたいのです。 zlib.dllを使っている以上,.NETの外側へのアクセスになります。 すでに「外部的なDLLを使用する」ということになるのですが。 ところで,「外部的なDLL」とは,どのような範囲を指すのでしょうか。 ・単純に.NET Framework再頒布可能パッケージに含まれる ・上記 + J# ・上記 + MS製コンポーネント ・上記 + サードパーティ製コンポーネント ・MSILで動くアセンブリ全て 例えばMSが提供しているものだけで作るのであれば,J#のライブラリであるvjslib.dllを参照設定し,java.util.zipの各種クラスを使うことになると思います。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.3

> 結論から言うと、Declareではないですね。 > .Net なんで。 私が提示したリンクは、「.NET用のDeclare」の解説ページですけど・・・ 試したけど駄目だったってことなんでしょうか? そういえば、 > 参考となる技術情報は見つける事ができたのですが、 って事でしたね。具体的にどういう内容なんでしょう? > ソース内でも aaa.bbb.ccc.zlib.zip(すいません適当です) ひょっとして誰か(その技術情報の著者?)が、 zlib.zipをラッピングした、.NET用のクラスを作成している・・・とか・・・ #つまり、そのクラスをインストールしてないと動かないとか・・・

回答No.2

> 結論から言うと、Declareではないですね。 という結論を導き出した根拠は何でしょうか。 VB.NET以降においても,DeclareステートメントはP/Invokeのために残っています。 http://www.winimage.com/zLibDll/ からソースをダウンロードしてみましたが,ファイル中にあるのはC用のファイルでした。 明らかに.NET Framework用のものではありません。 さらに,DLLをダウンロードしてDependency Walkerで覗いてみましたが,通常の関数があるだけのようです。 .NET系のDLLであればあるはずの,mscoree.dllへの参照もありませんでした。 ざっと見ただけですが,zlibを.NETから使うにはP/Invokeで呼び出すものだと,私は見なしました。 なので,#1さんの > 「参照設定」ではなく、「Declare ステートメント」で宣言して使用するのでは? が正解だと思います。

yossan_
質問者

お礼

お礼が遅れてしまい、大変失礼いたしました。 Declareの件なんですが、指示というかいわゆるこちらの仕事として開発する上での「開発規約」というもに違反してしまう為です。 加えて外部的なDLLを使用するのが今後運用上問題なしとの断言ができないという見解でもあります。 つまり、.Netの中だけでクローズする形をとりたいのです。 貴重なご意見、有難うございました。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

「Zlib.dll」って、良く知りませんが・・・ 「参照設定」ではなく、「Declare ステートメント」で宣言して使用するのでは? (http://msdn2.microsoft.com/ja-jp/library/4zey12w5(VS.80).aspx)

yossan_
質問者

補足

早速御回答いただきまして、有難う御座いました。 結論から言うと、Declareではないですね。 .Net なんで。 ソース内でも aaa.bbb.ccc.zlib.zip(すいません適当です) のように名前空間でしていします。 最悪COM方式での実現も視野に入れてしらべてみますね。

関連するQ&A

  • zlib.dll をダウンロードしたい

    こんにちは。 「zlib.dll」をインストールしたいのですがコレは無料ですか? http://www.winimage.com/zLibDll/ ここのサイトにあって、zlib114dll.zip をダウンロードしたいのですけど。 あと、このファイルって必要がなくなったらアンインストールしたほうがいいのでしょうか。 どういうファイルか知らないので、ずっといれっぱなしでよい物かちょっと不安です。 よろしくお願いします。

  • zlibで圧縮されたファイルの解凍

    zlibで圧縮されたファイルの解凍 圧縮されたファイルがあります。 zlibで圧縮されているそうです。 これを解凍したいのですが、どうすれば良いですか? 何かツールが必要なら何をダウンロードすればいいですか? 圧縮解凍ツールはlhaplusというのを使っていますが、そこからは不通には解凍できませんでした。 os:windows xp

  • 解凍で出てきたzip32.dll以外のファイル

    zip32.dllのファイルzip232dN.zipを http://www.csdinc.co.jp/archiver/lib/zip32j.html からダウンロードし解凍したところ、たくさんのファイルが出てきまました。 (1) zip32.dll以外のこれらのたくさんのファイルは、zip32.dllの作動に必要なのでしょうか。 (2) zip32.dll以外のこれらのたくさんのファイルは、zip232dN.zipを解凍したフォルダに置いておかないとzip32.dllは作動しないのでしょうか。

  • ZIPを操作したい(VB.NET、dll)

    現在VB6で、UNLHA32.dllを使用して ・LZHの圧縮 ・LZHの解凍 ・LZH内のテキストファイルの読み込み の操作をしています。 今回、VB6からVB.NETへ言語を変換することになりました。 そのタイミングで、LZHではなくZIPを使うことにもなりました。 (LZHはセキュリティ的に使うべきでないからという理由だと思います。) そこでLZHで行っていた操作を、ZIPに置き換えて実現するにはどうすればよいでしょうか? VB.NETの機能でZIP操作できるようなのですが、FrameWork4.5以上からのようなので、バージョンで操作できる・できないが出てしまうならdllを使うべきなのかなと思っています。 dllで調べていくと、UNZIP32.dllやzip32.dll、zip32j.dllなどがあることを知りました。 UNLHA32.dllではそれ1つで解凍や圧縮ができたのですが、 UNZIP32.dllでは解凍のみ、zip32.dllやzip32j.dllは圧縮のみのようです。 ただ、本文の最初に挙げていた、 圧縮状態のまま、その中にあるテキストファイルの読み込み がどうすれば実現できるのかが調べていても分かりませんでした。 また、先ほど挙げたZIP操作のdllをVB.NETで使用していくにあたっての コーディングなどについてもなかなか検索しても見つからず、 どうすればいいのか見えてこない状態です。 (私の検索方法が良くないのかもしれませんが・・・) それ以外にもzip32.dllとzip32j.dllの両方を組み合わせて使うようなのですが、 その理由も分からないです。 助言をいただけないでしょうか。 p.s. 入社したてのスキル不足なSEです。 初歩的な質問だったらすみません。

  • ファイルの圧縮/解凍(Zlib)について

    初歩的なことですが下記質問について教えてください。 現在、VB.net(2003)でZlib(Zlib.dll)を使用したファイルの圧縮/解凍処理を作ろうとしているのですが、HPを探してもC++のサンプルしかなく、どうPGして良いのかわかりません。どなたか経験、又は情報を知っている方がいましたら、教えてください。

  • VB2008ExpressEdition について

    現在、VisualStudio6.0 Enterprise版をインストールして使用しています。 同じパソコンに、VB2008ExpressEdition(VBだけです)をインストールしようと 思っているのですが、どちらもそれぞれのバージョンで問題なく開発できるでしょうか? おバカな疑問かも知れませんが、6.0が上書きされてアップグレードされる、 ということはないでしょうか。 また、VB2008 ExpressEditionでは、ユーザ登録は必須なのでしょうか? ダウンロードのサイトには    無料のライセンス認証キーにより、Visual Studio 2008 Express Edition を、    30 日間の期限を過ぎても使用できるようになります。 とあるのですが、つまり、ユーザ登録をしなければ、30日間しか使用できない、 ということですよね。LANを繋げていない完全なスタンドアロンになっている パソコンにインストールするので、インターネットを介してのユーザ登録はできません。 その場合は、インストールとアンインストールを繰り返すことで、 30日間以上使えるのでしょうか? (あるいは、できたとしても、1ヶ月ごとにそんなことを繰り返すのは良くないのでしょうか?) また、「ユーザ登録をしないと30日間しか使えない」というしくみは、 書籍などについているCDからのインストールでも同じでしょうか。 とりとめのない文章になってしまいましたが、どうしてもLANに繋げない(繋げたくない) パソコンに、無償版のVisual Studio 2008 Express Editionをインストールして、 30日以上使いたいのですが、何か良い方法はありますでしょうか? やはり、ユーザ登録の時だけでもLANに繋げるしかないでしょうか・・・ よろしくお願いします。

  • zipのファイルを解凍すると、dllになってしまう

    zipの付いたファイルを解凍すると、dllの付いたファイルになるだけで、解凍できません。 どうすれば、解凍できるでしょうか。 パソコンはXP、バージョンは2002です。 よろしくお願い致します。

  • VB.NETでUnzip32.DLLを使うには?

    VB2005または2008でUnzip32を使ってzipファイルを解凍する方法を教えてください。 Unzip32のバージョンは5.42、OSはXP32bitSP3です。 UnZipGetVersionではきちんとバージョンが返ってきますので、DLL自体には問題はないと思います。 Classの下に Public Declare Function UnZip Lib "unzip32.dll" (ByVal hwnd As Long, ByVal szCmdLine As String, ByVal szOutput As String, ByVal dwSize As Long) As Long を記述し、 UnZip(0, "-o C:\01.zip E:\", vbNull, 0) と命令してもコンパイラエラーになってしまいます。 第二引数のC:\01.zipはちゃんと存在するファイルであることを一応書き添えておきます。 引数の記述がおかしいと思うのですが、Unzip32のドキュメントを読んでも解決できません。 一日中ぐぐってもVB2005以降での構文サンプルも見つかりませんでした。 UnzioExtractでも引数の説明が意味不明で解凍できませんでした。 できましたら第一から第四までの引数になにを入れたらいいのか、 具体的に指示していけたらありがたいです。 よろしくお願いします。

  • VB2008でDLLの取込みできない

    VB2008Expressが無料配布していたので始めたばかりの初心者です。 玄人志向の学習リモコン「KURO-RS」(PC-OP-RS1)を操作するアプリを作ろうと試みているのですが、付属のSDKや下記コントロールDLLのVB2008への取り込み方がわかりません。 「PC-OP-RS1-CONTROL.DLL」 http://1c3.world.coocan.jp/wiki/ (「2008-06-08コントロールDLLを作ろう」にあります。VC++ソースもあります) 『参照の追加』を行っても「’~.dll’への参照を追加できませんでした。ファイルがアクセス可能で、有効なアセンブリまたはCOMコンポーネントであることを確認してください」とメッセージが出て取り込むことができませんでした。

  • VB.NETで、DLLを頂いたんですが・・

    VB.NETでプログラムを作成しているのですが、 DLLを頂きました。 このDLLをプログラムで使いたいのですがよくわかりません。 (1)DLLは実行ファイルにおけばいいんですよね? (2)DLLを参照しろっていう設定は必要ですか? (3)DLLには、プロパティ、メソッド、イベントとあるみたいなんですが、これらを宣言しないといけないと思うのですがどうやればいいのでしょうか? (4)下のような資料もらったのですがVBcnvというのが定義されていないとエラーがでるのですがどうやって宣言するのでしょう? private <任意名> as VBcnv (5)libファイルも一緒にあったのですが、どういう風に使えばいいのでしょうか?何につかうのでしょうか? すいません、どなたかお助けを~