gpt4 book ai didi

c# - C++ zlib 膨胀失败 - C# 修复的翻译?

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:02 27 4
gpt4 key购买 nike

我正在尝试使用 zlib 的 deflate 来扩充字符串,但它失败了,显然是因为它没有正确的 header 。我在别处读到,这个问题的 C# 解决方案是:

public static byte[] FlateDecode(byte[] inp, bool strict) {
MemoryStream stream = new MemoryStream(inp);
InflaterInputStream zip = new InflaterInputStream(stream);
MemoryStream outp = new MemoryStream();
byte[] b = new byte[strict ? 4092 : 1];
try {
int n;
while ((n = zip.Read(b, 0, b.Length)) > 0) {
outp.Write(b, 0, n);
}
zip.Close();
outp.Close();
return outp.ToArray();
}
catch {
if (strict)
return null;
return outp.ToArray();
}
}

但是我对C#一无所知。我可以推测它所做的只是为字符串添加一个前缀,但我不知道那个前缀是什么。有人能用 C++ 表达这个函数(或者甚至只是头文件创建和字符串连接)吗?

我试图膨胀的数据是使用 zlib 通缩从 PDF 中获取的。

感谢一百万,怀亚特

最佳答案

我使用 SharpZipLib 运气更好zlib 与原生 .Net Framework 类的互操作性。这可以正确处理来自 C++(zlib native)和来自 Java 压缩类的流,而无需任何有趣的业务。

关于c# - C++ zlib 膨胀失败 - C# 修复的翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4441924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com