首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mono & DeflateStream

Mono & DeflateStream
EN

Stack Overflow用户
提问于 2010-03-18 15:30:12
回答 2查看 1.3K关注 0票数 0

我有一个简单的代码

代码语言:javascript
复制
byte[] buffer = Encoding.UTF8.GetBytes("abracadabra");
MemoryStream ms = new MemoryStream();
DeflateStream ds = new DeflateStream(ms, CompressionMode.Compress, false);
ms.Write(buffer, 0, buffer.Length);

DeflateStream ds2 = new DeflateStream(ms, CompressionMode.Decompress, false);
byte[]  buffer2 = new byte[ms.Length];
ds2.Read(buffer2, 0, (int)ms.Length);
Console.WriteLine(Encoding.UTF8.GetString(buffer2));

当从ds2阅读时,我有以下内容:

Stacktrace:

at (包装托管到本地) System.IO.Compression.DeflateStream.ReadZStream (intptr,intptr,int) <0x00004>

at (包装托管到本地) System.IO.Compression.DeflateStream.ReadZStream (intptr,intptr,int) <0x00004>

在System.IO.Compression.DeflateStream.ReadInternal (byte[],int,int) 0x00031 ( C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System.IO.Compression\DeflateStream.cs:192 )

在C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System.IO.Compression\DeflateStream.cs:214的System.IO.Compression.DeflateStream.Read (byte[],int,int) 0x00086

在C:\Users\ilukyanov\Desktop\Cassini\GZipDemo\Main.cs:27的testtesttest.MainClass.Main (string[]) 0x00041

在(包装器运行时-调用) .runtime_invoke_void_object (对象,intptr,intptr,intptr)

此应用程序请求运行时以一种不寻常的方式终止它。请与应用程序的支持小组联系以获得更多信息。

这个问题出现在Mono 2.6.1和2.6.3中.

是否有任何已知的方法可以在Mono中成功地从DeflateStream中读取?或者可能有一些具有相同功能的第三方开源程序集?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-18 15:38:08

您可以本机使用DllImport互操作调用zlib。

唯一的诀窍是在结构中使用合适的大小,并在LD_LIBRARY_PATH中包含共享库,如果您是在Unix平台上的话。

票数 1
EN

Stack Overflow用户

发布于 2010-03-22 22:48:13

请给莫诺开个窃听器。如果你这样做,它可能会在2.6.4的时间内修好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2471057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档