在 C++ 中使用 DeflateStream?
我目前正在尝试将一些涉及使用 DeflateStream 的 C# 代码移植到标准 C++ 中,而无需 .NET 框架的支持。此类函数的一个示例是:
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++ 中?谢谢!
I'm currently trying to port some C# codes involving usage of DeflateStream into standard C++ without the support of .NET framework. One example of such function is:
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;
}
Just wondering, Is there an easy way to port the above code into C++? Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能想使用 zlib。在 C++ 中执行此操作的最简单方法是使用 它的Boost包装。
我不完全确定您的示例的作用,但以下是如何读取 zlib 压缩文件并将其内容写入 stdout (改编自文档中的示例):
You might want to use zlib. The easiest way to do that in C++ is to use the Boost wrapper for it.
I'm not entirely sure what your example does, but here's how to read in a zlib-compressed file and write its contents to stdout (adapted from an example in the docs):