我想將C#之間的壓縮數據發送到ZLIB格式的C++應用程序。在C++中,我使用boost :: iostreams中提供的zlib_compressor/zlib_decompressor。在C#中,我正在使用zlib.NET庫中的ZOutputStream。首先,當我壓縮使用兩個庫相同的數據,結果看起來不同:Zlib壓縮boost :: iostreams與zlib.NET不兼容
- 升壓::輸入輸出流:: zlib_compressor:
63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00
- zlib.NET(zlib.ZOutputStream):
78 9C 63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00 4F 31 63 8D
(請注意zlib.NET中存在的78 9C模式,但不在boost中)。
此外,當我在zlib.NET中壓縮的boost中解壓縮數據時,我無法從流中讀取表明存在錯誤的流。當我嘗試解壓縮以boost壓縮的數據時它確實工作。
有人知道發生了什麼問題嗎?
謝謝
約翰
另外值得注意的是,由於底層庫支持它們,所以boost庫似乎很難將非原始格式放在默認範圍之外。一定是某種哲學的東西,我想逃避我。 – 2010-05-13 08:30:08
謝謝,很好的幫助。事實證明,我已經通過no_header選項來偶然提升...... Doh! – Johan 2010-05-14 07:49:38