2010-12-30 13 views

答えて

2

私はそれを疑います。まず、qCompress()はzlib標準とは関係のない最初の4バイトにデータサイズを置きます。これらのバイトをスキップしたいかもしれませんが、それは汚いハックです。第2に、gzipStreamは、qCompress()がメモリ内圧縮用に設計された別のzlibフォーマットを使用するcompress2()呼び出しを使用するとき、Gzipフォーマット(ファイルを圧縮するために設計されたzlibフォーマット)を読み込むように聞こえる。

qCompress()とqUncompress()は相互に作用するように設計されています。他のコードとの互換性が必要な場合は、zlibを直接使用すると簡単で移植性があります。実際、私たちは私たちの会社でそれをやっています - サーバはQtを使い、クライアントは.NetとJavaを使います。完璧に動作します。

+0

.NETおよびJava用のzlibのどのような実装をお勧めしますか?私はZLIB.NET(http://www.componentace.com/zlib_.NET.htm)を知っていますが、Javaはどうですか? .NETとJavaのzlibサポートのための事実上の標準ライブラリは何ですか? –

+0

Java用に[JZlib](http://www.jcraft.com/jzlib/)を使用していますが、うまく動作します。サポートが多少遅れているだけです。フラッシュするために何かを書く必要があります。書くことは何もしません)。私が.NET開発者ではないので.Netについて知りません。 –

+0

サイドノートとして:私はZLIB.NETがqCompress/qUncompressと互換性があることを発見しました。 .NETのDeflateStreamとGzipStreamはそうではありません。ただし、圧縮と解凍の際に、非圧縮の長さを指定する最初の4バイトを追加して削除してください。 –

関連する問題