【发布时间】:2012-01-03 21:44:17
【问题描述】:
我目前正在尝试在没有 .NET 框架支持的情况下将一些涉及 DeflateStream 使用的 C# 代码移植到标准 C++ 中。这种功能的一个例子是:
public static byte[] ReadCompressed(this Stream stream)
{
var reader = new BinaryReader(stream);
int len = reader.ReadInt32();
var array = new byte[len];
var ds = new DeflateStream(stream, CompressionMode.Decompress);
ds.Read(array, 0, len);
ds.Close();
return array;
}
只是想知道,有没有一种简单的方法可以将上述代码移植到 C++ 中?谢谢!
【问题讨论】:
-
如果您喜欢重新发明轮子,您将需要像 zlib (zlib.net) 这样的第三方库或自己实现 deflate 算法。
-
@Joe:有没有C++下如何使用zlib的教程?
-
如果您需要使用 zlib 解压缩最初使用 .NET DeflateStream 类压缩的数据(反之亦然),则需要小心。 zlib 需要 DeflateStream 不生成的数据的前缀和后缀。见tlzprgmr.wordpress.com/2010/03/17/…